利用GetLastError()获得的socket编程中常见错误

利用GetLastError()获得的socket编程中常见错误

常数 描述
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

10048错误,地址在使用中。

在创建Socket时,server创建两个Socket,一个用来接受用户请求,另一个却用来处理用户请求(accept返回的Socket).如果在程序编译时出现了此错误。首先应该查看accept返回的Socket是否处理完毕。假如是用多线程实现的,一个线程专门用来处理这个Socket,则应该把该Socket做为参数传进(线程处理函数里面),否则就会出现10048地址占用的错误。可以通过设置SetSockOpt()来设置Socket的状态

10049 错误正如描述是你用IP地址不是本机IP或是你最近动过电脑配置,使得你的IP不是你的本机IP,或是你登陆一个V6网站看看显示的IP是不是发生了变化

你可能感兴趣的:(socket编程)