· | 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段的最大尺寸
| |