| · | 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头上的选项字段 |