使用WSAGetLastError()获取socket的常见错误信息(摘自MSDN)
| 常数 | 值 | 描述 |
| sckOutOfMemory | 7 | 内存不足 |
| sckInvalidPropertyValue | 380 | 属性值无效。 |
| sckGetNotSupported | 394 | 属性不可读。 |
| sckSetNotSupported | 383 | 属性是只读的。 |
| sckBadState | 40006 | 所请求的事务或请求本身的错误协议或者错误连接状态。 |
| sckInvalidArg | 40014 | 传递给函数的参数格式不确定,或者不在指定范围内。 |
| sckSuccess | 40017 | 成功。 |
| sckUnsupported | 40018 | 不受支持的变量类型。 |
| sckInvalidOp | 40020 | 在当前状态下的无效操作 |
| sckOutOfRange | 40021 | 参数越界。 |
| sckWrongProtocol | 40026 | 所请求的事务或请求本身的错误协议 |
| sckOpCanceled | 1004 | 取消操作。 |
| sckInvalidArgument | 10014 | 所请求的地址是广播地址,但未设置标记。 |
| sckWouldBlock | 10035 | 套接字不成块,而指定操作将使之成块。 |
| sckInProgress | 10036 | 制造块的 Winsock 操作在进行之中。 |
| sckAlreadyComplete | 10037 | 完成操作。未进行制造块的操作。 |
| sckNotSocket | 10038 | 描述符不是套接字。 |
| sckMsgTooBig | 10040 | 数据报太大,不适于缓冲区的要求,因而被截断。 |
| sckPortNotSupported | 10043 | 不支持指定的端口。 |
| sckAddressInUse | 10048 | 地址在使用中。 |
| sckAddressNotAvailable | 10049 | 来自本地机器的不可用地址。 |
| sckNetworkSubsystemFailed | 10050 | 网络子系统失败。 |
| sckNetworkUnreachable | 10051 | 此时不能从主机到达网络。 |
| sckNetReset | 10052 | 在设置 SO_KEEPALIVE 时连接超时。 |
| sckConnectAborted | 11053 | 由于超时或者其它失败而中止连接。 |
| sckConnectionReset | 10054 | 通过远端重新设置连接。 |
| sckNoBufferSpace | 10055 | 没有可用的缓冲空间。 |
| sckAlreadyConnected | 10056 | 已连接套接字。 |
| sckNotConnected | 10057 | 未连接套接字。 |
| sckSocketShutdown | 10058 | 已关闭套接字。 |
| sckTimedout | 10060 | 已关闭套接字。 |
| sckConnectionRefused | 10061 | 强行拒绝连接。 |
| sckNotInitialized | 10093 | 应首先调用 WinsockInit。 |
| sckHostNotFound | 11001 | 授权应答:未找到主机。 |
| sckHostNotFoundTryAgain | 11002 | 非授权应答:未找到主机。 |
| sckNonRecoverableError | 11003 | 不可恢复的错误。 |
| sckNoData |
万捷博客