第六章 Socket 函数说明
6.1 库函数综述
6.1.1 套接字函数
表 6.1 Windows Sockets 1.1 版本的 Berkeley Sockets 函数
accept() *
确认外来连接,并将它与一个立即建立的数据套接字联系起来。原始套接字返回
到监听状态。
bind()
给未命名套接字赋一个本地名。
closesocket() *
从进程对象参考表中删去一个套接字,只有当 SO_LINGER 设置时才阻塞。
connect() *
在指定套接字上初始化连接。
getpeername()
获取与指定套接字连接的对等方的名字。
getsockname()
获取指定套接字的当前名字。
getsockopt()
获取与指定套接字相关的选项。
htonl()
将一个 32 位数从主机字节顺序转换为网络字节顺序。
htons()
将一个 16 位数从主机字节顺序转换为网络字节顺序。
inet_addr()
将一个用网际标准点分表示法表示的字符串地址转换成网际地址值。
inet_ntoa()
将一个网际地址值转换成一个用点分十进制表示法表示的字符串地址
ioctlsocket()
为套接字提供控制。
listen()
在指定套接字上监听外来连接。
ntohl()
将一个 32 位数从网络字节顺序转换为主机字节顺序。
ntohs()
将一个 16 位数从网络字节顺序转换为主机字节顺序。
recv() *
从一个连接的套接字上接收数据。
recvfrom() *
从一个连接或未连接的套接字上接收数据。
select() *
执行多路同步 I/O。
send() *
给一个连接套接字发送数据。
sendto() *
给一个连接或未连接套接字发送数据。
setsockopt()
设置与指定套接字相关的选项。
shutdown()
关闭全双工连接的一部分。
socket()
建立一个通讯用的末端点,返回一个套接字。
* = 如果作用于阻塞套接字上,此例程可用阻塞。
这些函数根据功能的不同可以分为如下几类:
(1) 套接字函数。此类函数包括 sockets(),bind(),getpeername(),getsockname()和
closesocket(),它们主要完成创建,关闭套接字功能,以及对套接字命名与名字获取。
(2) 网络连接函数。此类函数包括 listen(),accept(),connect()和 shutdown(),它们完成
网络连接(如虚电路)的建立与关闭。此类函数中有部分可阻塞。
(3) 数据传输函数。此类函数包括 send(),recv(),sendto()和 recvfrom(),它们完成网络
数据的发送与接收,全部是可以阻塞的函数。
(4) 字节定序函数。此类函数包括 htonl(),htons(),ntohl()和 ntohs(),它们完成主机和
网络之间数据字节顺序的转换。
(5) 地址转换函数。此类函数包括 inet_addr(),inet_ntoa(),它们完成网络字符串地址和
Internet 地址之间的转换。
(6) 套 接 字 控 制 函 数 。 此 类 函 数 包 括 getsockopt() , setsockopt() , ioctlsocket() 和