・ | WSANOTINITIALISED | 在调用此API函数之前应该成功地调用了AfxSocketInit。 |
・ | WSAENETDOWN | Windows Sockets检测到网络子系统故障。 |
・ | WSAEFAULT | 参数lpOptionLen无效。 |
・ | WSAEINPROGRESS | 正在进行Windows Sockets块操作。 |
・ | WSAENOPROTOOPT | 系统不支持该选项。例如,SOCK_STREAM类型的套接字不支持SO_BROADCAST选项,SOCK_DGRAM类型的套接字不支持SO_ACCEPTCONN,SO_DONTLINGER,SO_KEEPALIVE,SO_LINGER和SO_OOBINLINE选项。 |
・ | WSAENOTSOCK | 描述符不是一个套接字。 |
nOptionName | 待检索的套接字选项名。 |
lpOptionValue | 指向存放套接字选项的返回值的缓冲区的指针。函数返回时,套接字选项的值存放在lpOptionValue所指的缓冲中。调用时,参数lpOptionLen存放缓冲区的大小(字节数),函数返回时,把它置成实际返回的字节数。对选项SO_LINGER来说,返回的是LINGER结构的大小;对于其它选项,返回的是BOOL值或int值的长度。请参阅后面“说明”部分选项和返回值大小的列表。 |
lpOptionLen | 指向lpOptionValue缓冲的大小(以字节为单位)的指针。 |
nLevel | 选项所定义的级别,支持的级别有:SOL_SOCKET和IPPROTO_TCP。 |
值 | 类型 | 含义 |
SO_ACCEPTCONN | BOOL | 套接字正在监听 |
SO_BROADCAST | BOOL | 套接字被配置成广播消息方式 |
SO_DEBUG | BOOL | 允许调试 |
SO_DONTLINGER | BOOL | 如果为真,选项SO_LINGER被禁止 |
SO_DONTROUTE | BOOL | 路由被禁止 |
SO_ERROR | int | 返回并清除错误状态 |
SO_KEEPALIVE | BOOL | 正在发送“保持活动” |
SO_LINGER | struct LINGER | 返回当前的延时选项 |
SO_OOBINLINE | BOOL | 在正常数据流中收到了带外数据 |
SO_RCVBUF | int | 接收缓冲区的大小 |
SO_REUSEADDR | BOOL | 套接字可以绑定到已经在使用的地址 |
SO_SNDBUF | int | 发送缓冲区的大小 |
SO_TYPE | int | 套接字的类型(如SOCK_STREAM) |
TCP_NODELAY | BOOL | 禁止发送合并数据的Nagle算法 |
值 | 类型 | 含义 |
SO_RCVLOWAT | int | 接收最低水准标志 |
SO_RCVTIMEO | int | 接收超时消息 |
SO_SNDLOWAT | int | 发送最低水准标志 |
SO_SNDTIMEO | int | 发送超时消息 |
IP_OPTIONS | int | 获取IP头的选项 |
TCP_MAXSEG | int | 获取TCP段的最大尺寸 |