· | WSANOTINITIALISED | 在调用本API函数之前,必须已经成功地执行AfxSocketInit。 |
· | WSAENETDOWN | Windows Sockets检测到网络系统故障。 |
· | WSAEFAULT | lpOptionValue不是进程地址空间中的有效值。 |
· | WSAEINPROGRESS | 正在执行一个成块的Windows Sockets操作。 |
· | WSAEINVAL | nLevel无效,或者lpOptionValue中的信息无效。 |
· | WSAENETRESET | 当设置了SO_KEEPALIVE时,连接超时。 |
· | WSAENOPROTOOPT | 系统不支持该选项。SOCK_STREAM型的套接字不支持SO_BROADCAST,SOCK_DGRAM型的套接字不支持SO_DONTLINGER,SO_KEEPALIVE,SO_LINGER和SO_OOBINLINE等选项。 |
· | WSAENOTCONN | 当设置了SO_KEEPALIVE时,连接已经被重置 |
· | WSAENOTCONN | 套接字没有连接上(仅用于SOCK_STREAM型的套接字)。 |
· | WSAENOTSOCK | 描述符不是一个套接字。 |
nOptionName | 准备设置值的套接字选项。 |
lpOptionValue | 指向待设置的值所在缓冲的指针。 |
nOptionLen | lpOptionValue缓冲的字节数。 |
nLevel | 选项定义所在的级别,系统支持的级别只有SOL_SOCKET和IPPROTO_TCP。 |
值 | 类型 | 含义 |
SO_BROADCAST | BOOL | 允许在套接字上传输广播消息 |
SO_DEBUG | BOOL | 记录调试信息 |
SO_DONTLINGER | BOOL | 不成块等待未发送数据发送完的Close调用;设置本选项和在l_onofff=0时设置SO_LINGER等价 |
SO_DONTROUTE | BOOL | 不经路由转换:直接把数据发到接口 |
SO_KEEPALIVE | BOOL | 发送keep_alives |
SO_LINGER | struct LINGER | 如果有未发送数据,则在Close时延时等待 |
SO_OOBINLINE | BOOL | 在普通数据流中接收带外数据 |
SO_RCVBUF | int | 设置接收数据的缓冲的大小 |
SO_REUSEADDR | BOOL | 允许套接字绑定到一个已经使用的地址上 |
SO_SNDBUF | int | 设置发送数据的缓冲的大小 |
TCP_NODELAY | BOOL | 禁止发送数据时的Nagle算法 |
值 | 类型 | 含义 |
SO_ACCEPTCONN | BOOL | 套接字正在监听,允许接收连接 |
SO_ERROR | int | 返回并清除错误状态 |
SO_RCVLOWAT | int | 接收最低水准标志 |
SO_RCVTIMEO | int | 接收到超时消息 |
SO_SNDLOWAT | int | 发送最低水准标志 |
SO_SNDTIMEO | int | 发送超时消息 |
SO_TYPE | int | 设置套接字的类型 |
IP_OPTIONS | int | 设置IP头上的选项字段 |