socket支持3种访问传输系统的接口:其中一种就是同步阻塞方式:使用同步阻塞方式时,socket库函数暂停程序的运行,等待传输系统完成请求的操作,操作一旦完成,应用程序重新获得控制权。如下右图。3.重要的socket系统调用(1)创建socket- sockets()系统调用应用程序在使用sockets之前,首先必须拥有一个sockets,系统调用sockets()向应用程序提供创建sockets的`手段,其调用格式如下:sockid = socket (int af, int type, int protocol);(2)指定本地地址-bind()系统调用在创建了一个新的socket号后,还要用bind()将本地socket地址(包括主机地址和本地端口号)与所创建的socket号联系起来,其调用格式如下:bind (socket sockid, const struct sockaddr far* name, int namelen);(3)listen()系统调用该调用用于面向连接的流socket,表明它愿意接收连接请求。当服务器可能同时收到几个连接请求时,便将连接请求放入请求队列。listen()在accept()之前调用,其格式为:listen(socket sockid, int backlog);(4)建立socket 连接connect()与accept()系统调用用于完成整个关联的建立。connect()的调用格式如下:connect (socket sockid, const struct sickaddr far*name, int namelen);(5)发送数据send()和sendto()系统调用建立了socket连接后,便可利用上述函数通过该socket发送数据。其中send()用于面向连接的传输,sendto()用于无连接传输,调用格式如下:send (socket sockid, char faar* buf, intbuflen, int flags);sendto(socket sockid, const char far* buf, int len, int flags, const struct sockaddr far* to, int tolen);(6)接收数据—recv()和recvfrom()系统调用接收数据系统调用与发送数据系统调用是一对应的,其调用格式也是一一对应。(7)关闭socket—closesocket()系统调用在完成数据传输任务后,需要调用closesocket()来关闭连接和释放socket,其调用格式如下:closesocket(socket sockid);
论文出处(作者):
关于CD-ROM媒体教材中交互式对话功能的基础性研究及其应
Java 的 HTTP 文件队列下载