socket套接字错误代码详解

本文描述了可能错误代码, 是由 WSAGetLastError (Wsapiref_2tiq.asp) 函数返回。按字母顺序列出错误由错误宏。 从任何函数不返回 Winsock2.h 中定义一些错误代码。 本文中不包含这些错误代码。
做网络编程被报错而真心蛋疼的孩子们有救了。

更多信息
WSAEINTR (10004) 
* 转换 : 中断函数调用。
* 说明 : 阻塞操作中断由对 WSACancelBlockingCall (Wsapiref_704y.asp) 调用。

WSAEACCES (10013) 
* 转换 : 拒绝权限。
* 说明 : 一个试图访问以某种方式是通过其访问权限禁止, 套接字。 例如, 当广播地址用于 sendto 但不是通过 setsockopt(SO_BROADCAST) 设置广播权限发生此错误。 对于 WSAEACCES 错误其他可能原因是当绑定(Wsapiref_6vzm.asp) 函数被调用 ()), 中 Microsoft Windows NT 4 其他程序、服务或内核模式驱动程序与定同一地址具有独占访问中 Microsoft Windows NT 4 绑定到同一地址具有独占访问其他程序、服务或内核模式驱动程序 .0 Service Pack 4 SP [ 4 ] 或更高版本 .0 Service Pack 4 SP [ 4 ] 或更高版本 (。 这样独占访问是新功能和 Windows NT 4.0 SP 4 以后, 并通过使用 SO_EXCLUSIVEADDRUSE 选项是实现它。

WSAEFAULT (10014) 
* 转换 : 错误地址。
* 说明 : 当它尝试使用指针参数调用系统检测到无效指针地址。 如果程序传递了无效指针值或者太小的缓冲区长度是该错误。 例如, 的参数是 SOCKADDR 结构的长度小于 sizeof(SOCKADDR) 值是否发生此问题。

WSAEINVAL (10022) 
* 翻译 : 无效参数。
* 说明 : 对 setsockopt (Wsapiref_94aa.asp) 函数提供一个无效参数指定了无效层 (例如, 一个参数)。 有时, 它也指向当前状态的套接字, 例如, 调用接受 (Wsapiref_13aq.asp) 套接字,没有侦听上。

WSAEMFILE (10024) 
* 转换 : 打开文件太多。
* 说明 : 有太多套接字打开。 每实现可能具有的可用插槽处理大数。 这些句柄可能提供每进程, 全球, 或每线程。

WSAEWOULDBLOCK (10035) 
* 转换 : 资源暂时不可用。
* 说明 : 从无法完成立即, 例如, nonblocking 套上操作接收 (Wsapiref_2i9e.asp), 是要从插槽读取排队没有数据时返回此错误。 它是非致命错误, 以后可重试操作。 WSAEWOULDBLOCK 通常报告如由于一些时间为要建立该连接必须经过的调用结果连接到 nonblocking SOCK_STREAM 插座 (Wsapiref_8m7m.asp)。

WSAEINPROGRESS (10036) 
* 转换 : 操作现在正在。
* 说明 : 阻塞操作正在运行。 WindowsSockets 只允许单个阻塞操作对于每项任务或者对于每个线程将完成。 如果(无论它引用或任何其他插槽) 进行任何其他函数调用, 功能失败, WSAEINPROGRESS 错误。

WSAEALREADY (10037) 
* 转换 : 操作正在进行。
* 说明 : nonblocking 套接字上一个操作是当操作已经正在重。 例如, 调用连 (Wsapiref_8m7m.asp) 是尝试第二次 nonblocking 正已连接, 在套接字上或异步请求 (WSAAsyncGetXbyY) 是尝试已被取消或完成。

WSAENOTSOCK (10038) 
* 转换 : Socket nonsocket 上操作。
* 说明 : 找东西是不套接字上尝试一个操作。 插槽柄参数是否未引用有效插座, 或用于选择 (Wsapiref_1ab6.asp), 属于一个 fd_set 已无效。

WSAEDESTADDRREQ (10039) 
* 转换 : 需要目标地址。
* 说明 : 从套接字上操作需要地址被省略。 例如, 如果 sendto (Wsapiref_4sqa.asp) 与远程地址是 ADDR_ANY 调用会返回此错误。

WSAEMSGSIZE (10040) 
* 转换 : 消息太长。
* 说明 : 缓冲区用来接收数据报是小于数据报本身或大于内部消息缓冲区或某些其他网络限制, A 是报套接字上发送邮件。

WSAEPROTOTYPE (10041) 
* 翻译 : 协议对于套接字错误类型。
* 说明 : 插槽 (Wsapiref_2qr6.asp) 函数调用中指定 A 协议不支持语义的插座类型请求。 例如, ARPA Internet UDP 协议能指定与插座类型的 SOCK_STREAM。

WSAENOPROTOOPT (10042) 
* 转换 : Bad 协议选项。
* 说明 : getsockopt (Wsapiref_8qcy.asp) 调用或 setsockopt (Wsapiref_94aa.asp) 调用中指定一未知、 无效, 或支持选项或级别。

WSAEPROTONOSUPPORT (10043) 
* 翻译 : 不支持协议。
* 说明 : 请求协议或者系统中尚未配置或没有实现它存在。 例如, 套接字 (Wsapiref_2qr6.asp) 调用请求 SOCK _ DGRAM 插座, 但它指定流协议。

WSAESOCKTNOSUPPORT (10044) 
* 转换 : Socket 类型不支持。
* 说明 : 指定插座类型: 支持此地址族中不存在。 套接例如, 可选能插槽 (Wsapiref_2qr6.asp) 调用中选择类型但实现不支持 SOCK_RAW SOCK_RAW 字根本。

WSAEOPNOTSUPP (10045) 
* 翻译 : 不支持操作。
* 说明 : 对于对象所引用的类型不支持该操作, 已尝试。该错误通常发生在插座描述符以套接字无法支持此操作尝试接受连接数据报套接字上。

WSAEPFNOSUPPORT (10046) 
* 翻译 : 协议系列不支持。
* 说明 : 系统中尚未配置: 协议系列或没有实现它存在。 此消息有略微不同含义从 WSAEAFNOSUPPORT。 但是, 很频繁互换。 所有 WindowsSockets 函数返回这些消息之一指定 WSAEAFNOSUPPORT。

WSAEAFNOSUPPORT (10047) 
* 转换 : 地址家族协议系列不受。
* 说明 : 已使用一个地址与请求协议不兼容。 使用一个关联地址家族对 Internet 协议 (即, AF_INET) 和通用协议类型 (即, SOCK_STREAM) 创建所有套接字。 如果正确协议明确请求插槽 (Wsapiref_2qr6.asp) 调用中或错误系列的地址用于插座, 例如, sendto (Wsapiref_4sqa.asp) 中返回此错误。

WSAEADDRINUSE (10048) 
* 转换 : 地址已在使用中。
* 说明 : 通常, 是允许一个使用的每个套接字地址 (协议 / IP 地址 / 端口)。 如果程序尝试绑定 (Wsapiref_6vzm.asp) 插座到一个 IP 地址或端口, 对于一个现有插座, 套接字未正确, 关闭,已使用该错误发生或套接字程序是仍然在关闭过程中。 对于服务器需要绑定到同一端口号, 多套程序考虑使用 setsockopt (Wsapiref_94aa.asp)(SO_REUSEADDR)。 客户程序通常不需要调用绑定根本、 连 (Wsapiref_8m7m.asp) 自动选择未端口。 WSAEADDRINUSE 错误绑定与通配符地址 (涉及 ADDR_ANY), 调用时可能会延迟直到达到提交特定地址。 通过调用到另一个函数发生以后, 包括连接、 侦听、 WSAConnect 或 WSAJoinLeaf 可能会出现此。

WSAEADDRNOTAVAIL (10049) 
* 翻译 : 无法分配请求地址。
* 说明 : 其上下文中: 请求地址无效。 绑定 (Wsapiref_6vzm.asp) 试图从此错误通常可以到地址为本地计算机无效。也可能导致此错误 sendto (Wsapiref_4sqa.asp), WSAConnect (Wsapiref_8kc2.asp)、 WSAJoinLeaf (Wsapiref_7dv6.asp) 或 WSASendTo (Wsapiref_752q.asp) 远程地址或端口对于远程计算机 (例如, 地址或端口 0) 无效时从连接 (Wsapiref_8m7m.asp),。

WSAENETDOWN (10050) 
* 转换 : 网络已关闭。
* 说明 : A 套接字操作遇到一个死网络。 此错误可能表明网络系统, 通过 Windows 套接字 DLL 运行 (即, 协议堆栈)、 网络接口或局域网本身的严重故障。

WSAENETUNREACH (10051) 
* 转换 : 网络不可。
* 说明 : 是 A 套接字操作试图无法访问网络。 该错误通常意味着本地软件知道没有路由到达远程主机。

WSAENETRESET (10052)
* 转换: 网络除去连接重置上。
* 说明 : 因 keep-alive 活动操作已在进行时检测故障: 连接已断开。 如果是在建立连接已经失败上设置 SO_KEEPALIVE 试图还通过 setsockopt (Wsapiref_94aa.asp) 返回它。

WSAECONNABORTED (10053) 
* 转换 : 软件导致连接中止。
* 说明 : 一个建立连接可能停止由主机计算机, 中软件因数据传输超时或协议错误。

WSAECONNRESET (10054) 
* 转换 : 由对等重置连接。
* 说明 : 一现有连接被强制关闭由远程主机。 如果突然停止远程主机上对等程序、 主机重新, 或远程主机使用硬盘关闭此错误通常。有关更多信息有关远程套接字上 SO_LINGER 选项请参阅 setsockopt (Wsapiref_94aa.asp)。如果因一个或多个操作过程中正在检测故障 keep-alive 活动连接被中断可能也产生此错误。 与 WSAENETRESET 了正在操作失败。 与 WSAECONNRESET 后续操作失败。

WSAENOBUFS (10055) 
* 转换 : 无缓冲区空间。
* 说明 : 由于系统缺少缓冲区空间或者队列已满无法执行套接字上一操作。

WSAEISCONN (10056) 
* 转换 : Socket 已连接。
* 说明 : A 连接请求是对一个 - 已连接到插槽。 如果尽管其他实现将此视为有效事件 (对于 SOCK_STREAM 套, sendto (Wsapiref_4sqa.asp) 中收件人参数被忽略) sendto (Wsapiref_4sqa.asp) 是调用套接相连 SOCK _ DGRAM 字上某些实现也返回此错误。

WSAENOTCONN (10057) 
* 转换 : 套接字未连接。
* 说明 : A 请求以发送或接收数据不允许因为套接字未连接并且没有地址 (报使用 sendto Wsapiref_4sqa.asp ], [ 在套接字上发送时提供)。 任何其他类型的操作可能也返回此错误, 例如, 如果已重置该连接设置 SO_KEEPALIVE setsockopt (Wsapiref_94aa.asp)。

WSAESHUTDOWN (10058) 
* 转换 : 套接字关闭后无法发送。
* 说明 : A 请求以发送或接收数据是不允许因为有已被关闭套接字以与以前关机 (Wsapiref_60z6.asp) 调用该方向。调用, 关机时是插座部分关闭请求。 这是一个信号, 发送或接收进程 (或两者) 已停止使用。

WSAETIMEDOUT (10060) 
* 转换 : 超连接。
* 说明 : A 连接尝试失败因为相连方的时间, 段后是否正确响应或由于未能响应相连主机建立连接失败。

WSAECONNREFUSED (10061) 
* 转换 : 拒绝连接。
* 说明 : 可被建立无连接因为主动拒绝它在目标计算机。 此错误通常可以从试图连接到服务处于外部主机, 即, 一个不具有运行服务器程序上活动。

WSAEHOSTDOWN (10064) 
* 转换 : 主机已关闭。
* 说明 : A 套接字操作失败, 因为目标主机是关闭。 套接字操作遇到死主机。 已经不初始化本地主机上网络活动。这些条件是更愿意将由 WSAETIMEDOUT 错误。

WSAEHOSTUNREACH (10065) 
* 转换 : 无路由到主机。
* 说明 : 无法到达主机 A 套接字操作已尝试。 请参阅 WSAENETUNREACH。

WSAEPROCLIM (10067) 
* 转换 : 进程太多。
* 说明 : A WindowsSockets 实现可能限制对的程序, 可同时使用其数目。 如果已达到限制 WSAStartup (Wsapiref_1v8y.asp) 可能会失败, 此错误。

WSASYSNOTREADY (10091) 
* 翻译 : 网络子系统不可用。
* 说明 : 如果 WindowsSockets 实现当前无法正常由于基础系统使用它来提供网络服务当前不可由 WSAStartup (Wsapiref_1v8y.asp) 会返回此错误。 确认下面: * 确认相应 Windows 套接字 DLL 文件是否位于当前路径。
* 确认, 它们没有试图同时使用多个 WindowsSockets 实现。
* 如果有多个 WinsockDLL 位于系统, 确认是否适合当前加载网络子系统首 Winsock DLL 路径中。
* 确认所有必需的组件是当前安装并根据 WindowsSockets 实现文档正确配置。

WSAVERNOTSUPPORTED (10092) 
* 转换 : Winsock.dll 版本超出范围。
* 说明 :: 当前 WindowsSockets 实现不支持请求由程序 WindowsSockets 规范版本。 确保没有旧 Windows 套接字 DLL 文件, 正在访问。

WSANOTINITIALISED (10093) 
* 转换 : 成功 WSAStartup 尚未执行。
* 说明 : Either 程序不调用 WSAStartup (Wsapiref_1v8y.asp) 或 WSAStartup (Wsapiref_1v8y.asp) 失败。 程序可能访问插座, 当前活动任务不拥有或 WSACleanup 已被调用多次 (即, 它是试图共享套接字之间任务),。

WSAEDISCON (10101) 
* 转换 : Graceful 关机过程中。
* 说明 : 由 WSARecv (Wsapiref_4z1u.asp) 和 WSARecvFrom (Wsapiref_4wky.asp) 以表明远程方已初始化正常关机过程返回此错误。

WSATYPE_NOT_FOUND (10109) 
* 转换 : 类未找到类型。
* 说明 : 未找到指定类。

WSAHOST_NOT_FOUND (11001) 
* 翻译 : 没有找到主机。 已知没有这样的主机。
* 说明 : 不名称是一个正式主机名称或别名, 或它找不到数据库是被查询中。 此错误可能还会返回对协议和服务查询, 及其意味着找到相关数据库指定名称。

WSATRY_AGAIN (11002) 
* 转换 : 未找到 Nonauthoritative 主机。
* 说明 : 此错误在主机名称解析, 是通常临时错误, 意味着本地服务器从权威服务器未收到响应。在稍后某个时间重新可能成功。

WSANO_RECOVERY (11003) 
* 转换 : 这是无法恢复错误。
* 说明 : 此错误表明数据库搜索期间发生某种无法恢复错误。 如果无法找到数据库文件 (例如, BSD 兼容 HOSTS、 SERVICES 或 PROTOCOLS 文件) 或由服务器出现严重错误返回 DNS 请求可能发生此错误。

WSANO_DATA (11004) 
* 转换 : 有效名称, 没有数据记录的请求类型。
* 说明 : 请求名称是否有效以及找到数据库, 中但它没有正确相关数据, 它被用于解析。 对于此典型示例是主机名称 - 地址翻译尝试(使用 gethostbyname [ Wsapiref_0q5u.asp ] 或 [ Wsapiref_7bhu.asp ] WSAAsyncGetHostByName) 使用 DNS 服务器。 MX 记录返回但没有 A 记录。 这意味着主机本身存在, 但是不直接到达。

WSA_INVALID_HANDLE (依赖操作系统) 
* 转换 : 指定对象事件句柄无效。
* 说明 : 程序试图使用事件对象, 但指定句柄无效。

WSA_INVALID_PARAMETER (依赖操作系统)
* 转换 : 一个或多个参数是无效。
* 说明 : 程序使用 WindowsSockets 函数直接映射到 Win 32 函数。 Win 32 函数是表示一个或多个参数有问题。

WSA_IO_INCOMPLETE (依赖操作系统) 
* 转换 : Overlapped I/O 事件对象中不通知状态。
* 说明 : 的程序已尝试确定的重叠操作是尚未完成状态。 操作在完成之前, 在轮询模式使用 WSAGetOverlappedResult (带有 fWait 标志集为 FALSE),确定当重叠操作已完成程序显示此错误代码。

WSA_IO_PENDING (依赖操作系统) 
* 转换 : Overlapped 操作完成以后。
* 说明 : 的程序初始化重叠操作无法立即完成。 当完成该操作将稍后发送完成指示。

WSA_NOT_ENOUGH_MEMORY (依赖操作系统) 
* 转换 : 可用内存不足。
* 说明 : 程序使用 WindowsSockets 函数直接映射到 Win 32 函数。 Win 32 函数是表示需要内存资源缺乏。

WSA_OPERATION_ABORTED (依赖操作系统) 
* 转换 : Overlapped 中止操作。
* 说明 : 由于套接字已关闭或 WSAIoctl (Wsapiref_6ik2.asp) 中 SIO_FLUSH 命令已运行一个重叠操作被取消。

WSAINVALIDPROCTABLE (依赖操作系统) 
* 翻译 : 无效过程表从服务提供商。
* 说明 : A 服务提供程序返回到 Ws2_32.dll 无效过程表。 (这通常是由一个或多个被空函数指针)。

WSAINVALIDPROVIDER (依赖操作系统) 
* 翻译 : 无效服务提供商版本编号。
* 说明 : A 服务提供程序返回以外 2.0 版本数。

WSAPROVIDERFAILEDINIT (依赖操作系统) 
* 翻译 : 无法初始化服务提供程序。
* 说明 加载 (LoadLibrary 失败) 或提供程序 WSPStartup / NSPStartup 函数失败 Either 服务提供程序的 DLL 无法:。

WSASYSCALLFAILURE (依赖操作系统) 
* 转换 : 系统调用失败。
* 说明 : 应永不失败系统调用失败时返回此错误。 例如, 如果调用到 WaitForMultipleObjects 失败或试图更改协议或名称空间目录之一注册表函数失败发生此错误。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值