您的位置:首页 > 编程语言

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

2011-12-19 15:36 471 查看
利用GetLastError()获得的socket编程中常见错误

常数描述
sckOutOfMemory7内存不足
sckInvalidPropertyValue380属性值无效。
sckGetNotSupported394属性不可读。
sckSetNotSupported383属性是只读的。
sckBadState40006所请求的事务或请求本身的错误协议或者错误连接状态。
sckInvalidArg40014传递给函数的参数格式不确定,或者不在指定范围内。
sckSuccess40017成功。
sckUnsupported40018不受支持的变量类型。
sckInvalidOp40020在当前状态下的无效操作
sckOutOfRange40021参数越界。
sckWrongProtocol40026所请求的事务或请求本身的错误协议
sckOpCanceled1004取消操作。
sckInvalidArgument10014所请求的地址是广播地址,但未设置标记。
sckWouldBlock10035套接字不成块,而指定操作将使之成块。
sckInProgress10036制造块的 Winsock 操作在进行之中。
sckAlreadyComplete10037完成操作。未进行制造块的操作。
sckNotSocket10038描述符不是套接字。
sckMsgTooBig10040数据报太大,不适于缓冲区的要求,因而被截断。
sckPortNotSupported10043不支持指定的端口。
sckAddressInUse10048地址在使用中。
sckAddressNotAvailable10049来自本地机器的不可用地址。
sckNetworkSubsystemFailed10050网络子系统失败。
sckNetworkUnreachable10051此时不能从主机到达网络。
sckNetReset10052在设置 SO_KEEPALIVE 时连接超时。
sckConnectAborted11053由于超时或者其它失败而中止连接。
sckConnectionReset10054通过远端重新设置连接。
sckNoBufferSpace10055没有可用的缓冲空间。
sckAlreadyConnected10056已连接套接字。
sckNotConnected10057未连接套接字。
sckSocketShutdown10058已关闭套接字。
sckTimedout10060已关闭套接字。
sckConnectionRefused10061强行拒绝连接。
sckNotInitialized10093应首先调用 WinsockInit。
sckHostNotFound11001授权应答:未找到主机。
sckHostNotFoundTryAgain11002非授权应答:未找到主机。
sckNonRecoverableError11003不可恢复的错误。
sckNoData
10048错误,地址在使用中。

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

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: