‘SOCKET’ 分类的存档
socket() 我们使用系统调用socket()来获得文件描述符:#include<sys/types.h>#include<sys/socket.h>int socket(int domain,int type,int protocol);第一个参数domain设置为“AF_INET”。第二个参数是套接口的类型:SOCK_STREAM或SOCK_DGRAM。第三个参数设置为0。系统调用socket()只返回一个套接口描述符,如果出错,则返回-1。
用C语言编写Socket程序—入门篇 本文的目的在于为初学者提供一个快速的入门指导,用来迅速熟悉用C语言来编写Internet网络应用程序。本文假设读者已经具备了C语言的基本知识和语法,并且读者有使用Uinx/Linux的经验。尽管Uinx/Linux的Socket编程与在Windows下的有一些不同的地方,但是在此我并不想展开。另外,本文所有的程序都在Red Hat5.2下编译通过,并且在glibc 2.0.7和libc 5.3.12两种环境下都没有问题。现在就开始我们的教程吧:)。 对一个程序员而言,sockets和底层的文件描述符非常类似(可以在sockets里使用read()和write()函数),尽管建立一个socket比打开,读取和写入一个文件更为麻烦,但这是由于网络连接比单纯的本地硬盘的读写复杂的多所造成的。 通常,sockets用来实现客户机/服务器对。服务器的任务是监听某个特定的端口,当接收到客户端的服务请求时完成相应的服务;客户机的任务是请求服务器完成事先设定好的服务。 作为入门级的文章,我们在这里不会使用所有的socket类型和功能,但是我们会向读者提供足够的信息。现在,就让我们开始吧。
什么是Socket Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学 Internet上的TCP/IP网络编程,必须理解Socket接口。 Socket接口设计者最先是将接口放在Unix操作系统里面的。如果了解Unix系统的输入和输出的话,就很容易了解Socket了。网络的 Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用Socket(),该函数返 回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。常用的Socket类型有两种:流式Socket (SOCK_STREAM)和数据报式Socket(SOCK_DGRAM)。流式是一种面向连接的Socket,针对于面向连接的TCP服务应用;数据 报式Socket是一种无连接的Socket,对应于无连接的UDP服务应用。
