Windows套接字错误代码说明

来源:互联网 发布:mac海淘官网 编辑:程序博客网 时间:2024/05/22 04:45

WSAEINTR (10004)

  • 翻译: 中断函数调用。
  • 说明: 阻止操作被中断通过调用 WSACancelBlockingCall (Wsapiref_704y.asp)。

WSAEACCES (10013)

  • 翻译: 权限被拒绝。
  • 说明: 尝试访问套接字访问权限被禁止的方式。例如,广播的地址可用于发送到但广播的权限未设置通过使用 setsockopt(SO_BROADCAST) 时,将发生此错误。另一个可能导致 WSAEACCES 错误的原因是,当调用绑定 (Wsapiref_6vzm.asp) 函数 (在 Microsoft Windows NT 4.0 Service Pack 4 [SP4] 或更高版本),另一个程序、 服务或内核模式驱动程序绑定到同一地址具有独占访问权。这种独占的访问是一项新功能的 Windows NT 4.0 SP4 和更高版本,并且其实现通过使用 SO_EXCLUSIVEADDRUSE 选项。

WSAEFAULT (10014)

  • 翻译: 错误的地址。
  • 说明: 在尝试使用指针参数的调用时,系统检测到一个无效的指针地址。如果程序传递了无效的指针值,或者如果缓冲区的长度太小,则会发生此错误。例如,如果一个参数,它是一种 SOCKADDR 结构的长度小于 sizeof(SOCKADDR) 值,将发生此问题。

WSAEINVAL (10022)

  • 翻译: 无效的参数。
  • 说明setsockopt (Wsapiref_94aa.asp) 函数提供了无效的参数 (例如,指定了无效的级别参数)。有时,它也指从插座的当前状态,调用例如上没有侦听套接字, 接受 (Wsapiref_13aq.asp)。

WSAEMFILE (10024)

  • 翻译: 打开的文件太多。
  • 说明: 有太多打开的套接字。每个实现都可能具有套接字句柄可用的最大数目。这些句柄可能按进程、 全局或每个线程。

WSAEWOULDBLOCK (10035)

  • 翻译: 资源暂时不可用。
  • 说明: 将返回此错误无法立即完成,例如,非阻塞套接字操作中接收 (Wsapiref_2i9e.asp),当没有排队的数据要从套接字读取。它是一个非致命的错误,并可以以后再重试该操作。WSAEWOULDBLOCK 通常报告的调用结果连接 (Wsapiref_8m7m.asp) SOCK_STREAM 非阻塞套接字,因为一些时间必须经过建立的连接。

WSAEINPROGRESS (10036)

  • 翻译: 现在正在进行的操作。
  • 说明: 阻止操作当前正在运行。Windows 套接字只允许一个阻塞操作为每个任务或未完成的每个线程。如果 (无论是引用,或任何其他套接字) 进行任何其他函数调用,则操作将失败并出现 WSAEINPROGRESS 错误。

WSAEALREADY (10037)

  • 翻译: 操作已在进行。
  • 说明: 在非阻塞套接字上尝试执行操作,当操作已在进行中。例如,调用连接 (Wsapiref_8m7m.asp) 尝试第二次在非阻塞套接字已连接或已取消或已完成的异步请求 (WSAAsyncGetXbyY) 尝试。

WSAENOTSOCK (10038)

  • 翻译: 套接字操作在非插座进行插座上的。
  • 说明: 一项操作已尝试某件事并不是一个套接字。套接字句柄参数未引用有效的套接字,或者对于选择 (Wsapiref_1ab6.asp),fd_set 的成员是无效。

WSAEDESTADDRREQ (10039)

  • 翻译: 所需的目标地址。
  • 说明: 对套接字的操作中省略了必需的地址。例如,如果使用的远程地址的 ADDR_ANY 调用发送到 (Wsapiref_4sqa.asp),将返回此错误。

WSAEMSGSIZE (10040)

  • 翻译: 消息太长。
  • 说明: 在数据报套接字发送的消息大于内部消息缓冲器或其他一些网络限制,或用于接收数据报的缓冲区比数据报小。

WSAEPROTOTYPE (10041)

  • 翻译: 协议的套接字类型不正确。
  • 说明: 在套接字 (Wsapiref_2qr6.asp) 的函数调用中指定的协议不支持请求的套接字类型的语义。例如,ARPA 互联网 UDP 协议不能指定套接字类型为 SOCK_STREAM。

WSAENOPROTOOPT (10042)

  • 翻译: 错误的协议选项。
  • 说明: getsockopt (Wsapiref_8qcy.asp) 调用或 setsockopt (Wsapiref_94aa.asp) 调用中指定了未知、 无效或不受支持的选项或级别。

WSAEPROTONOSUPPORT (10043)

  • 翻译: 不支持的协议。
  • 说明: 请求的协议既没有配置系统中,或者它的实现不存在。例如,一个套接字 (Wsapiref_2qr6.asp) 调用请求的 SOCK_DGRAM 套接字,但指定的流协议。

WSAESOCKTNOSUPPORT (10044)

  • 翻译: 套接字类型不受支持。
  • 说明: 这个地址家族中不存在指定的套接字类型的支持。例如,可选中的套接字 (Wsapiref_2qr6.asp) 调用可能会选择类型,但实现不支持 SOCK_RAW SOCK_RAW 在所有套接字。

WSAEOPNOTSUPP (10045)

  • 翻译: 不支持此操作。
  • 说明: 所引用的对象的类型不支持所尝试的操作。当尝试接受在数据报套接字的连接到套接字不支持此操作的套接字说明符时,通常会发生此错误。

WSAEPFNOSUPPORT (10046)

  • 翻译: 协议系列不支持。
  • 说明: 它的实现不存在或尚未配置协议系列系统中。此消息具有从 WSAEAFNOSUPPORT 稍有不同的含义。但是,它是经常互换。返回以下消息之一的所有 Windows 套接字函数还可以都指定 WSAEAFNOSUPPORT。

WSAEAFNOSUPPORT (10047)

  • 翻译: 系列协议系列不支持地址。
  • 说明: 所使用的地址与请求的协议不兼容。所有套接字创建具有相关联的地址族 (即 AF_INET 的互联网协议) 和一般的协议类型 (即 SOCK_STREAM)。如果明确请求的套接字 (Wsapiref_2qr6.asp) 调用中的一个不正确的协议,或者错误系列中的一个地址用于套接字,例如,发送到 (Wsapiref_4sqa.asp) 中,将返回此错误。

WSAEADDRINUSE (10048)

  • 翻译: 地址已在使用中。
  • 说明: 通常,允许的每个套接字地址 (协议/IP 地址/端口) 只有一个使用情况。如果某个程序尝试绑定 (Wsapiref_6vzm.asp) IP 地址或端口已被使用的一个现有的插座未正确,关闭套接字的套接字,就会发生此错误,或仍在结束的过程是一个套接字。对于包含要将多个套接字绑定到同一端口号的服务器程序,请考虑使用 setsockopt (Wsapiref_94aa.asp)(SO_REUSEADDR)。客户端程序通常没有在所有调用绑定、 连接 (Wsapiref_8m7m.asp) 自动选择一个未使用的端口。当调用绑定时使用通配符地址 (涉及 ADDR_ANY) 时,提交特定地址之前,可能会延迟 WSAEADDRINUSE 错误。这可能会发生更高版本,其中包括连接、 侦听、 WSAConnect,或 WSAJoinLeaf 的另一个函数调用。

WSAEADDRNOTAVAIL (10049)

  • 翻译: 不能分配请求的地址。
  • 说明: 该请求的地址是在其上下文中的无效。导致此错误通常试图绑定 (Wsapiref_6vzm.asp) 到一个无效的本地计算机的地址。此错误可能还会从连接 (Wsapiref_8m7m.asp) sendto (Wsapiref_4sqa.asp) WSAConnect (Wsapiref_8kc2.asp)、 WSAJoinLeaf (Wsapiref_7dv6.asp) 或 WSASendTo (Wsapiref_752q.asp) 时远程地址或端口是无效的远程计算机 (for example,地址或端口 0)。

WSAENETDOWN (10050)

  • 翻译: 在网络出现故障。
  • 说明: 套接字操作遇到了死网络。此错误可能意味着网络系统 (即,对运行 Windows 套接字 DLL 协议堆栈)、 网络接口或本地网络本身的严重故障。

WSAENETUNREACH (10051)

  • 翻译: 连接不上网络。
  • 说明: 到无法访问的网络尝试执行套接字操作。此错误通常意味着本地软件知道没有访问远程主机的路由。

WSAENETRESET (10052)

  • 翻译: 网络中断连接重置。
  • 说明: 连接保持活动状态的活动,在操作过程中检测到故障原因被中断。它还可返回由 setsockopt (Wsapiref_94aa.asp) 如果尝试将 SO_KEEPALIVE 设置在连接已失败。

WSAECONNABORTED (10053)

  • 翻译: 软件造成连接终止。
  • 说明: 已建立的连接停止主机计算机中的软件可能因为数据传输超时或协议错。

WSAECONNRESET (10054)

  • 翻译: 连接被对等方重置。
  • 说明: 现有的连接被远程主机强行关闭。如果突然停止远程主机上的对等程序,重新启动主机时,或远程主机使用硬关闭,通常会发生此错误。有关远程的套接字上的 SO_LINGER 选项的详细信息,请参阅 setsockopt (Wsapiref_94aa.asp)。如果由于保持加电检测到故障,而一个或多个操作正在进行中的活动中,连接被中断,也可能导致此错误。使用 WSAENETRESET 时,正在进行的操作会失败。随后的操作失败,出现 WSAECONNRESET。

WSAENOBUFS (10055)

  • 翻译: 没有可用的缓冲区空间。
  • 说明: 由于系统缓冲区空间不足,或者因为队列已满,不能执行套接字操作。

WSAEISCONN (10056)

  • 翻译: 套接字已连接。
  • 说明: 在已连接的套接字上发出连接请求。如果发送到 (Wsapiref_4sqa.asp) 上调用连接的 SOCK_DGRAM 套接字 (对于 SOCK_STREAM 套接字,sendto (Wsapiref_4sqa.asp) 中的收件人参数将被忽略) 虽然其他实现将此视为有效的匹配项,某些实现还会返回该错误。

WSAENOTCONN (10057)

  • 翻译: 套接字未连接。
  • 说明: 由于套接字没有连接并且 (在使用 sendto [Wsapiref_4sqa.asp] 的数据文报套接字上发送时,未提供地址),不允许发送或接收数据的请求。任何其他类型的操作也可能会返回此错误,例如,如果连接已被重置设置 SO_KEEPALIVE setsockopt (Wsapiref_94aa.asp)。

WSAESHUTDOWN (10058)

  • 翻译: 套接字关闭后无法发送。
  • 说明: 发送或接收数据的请求不允许的因为套接字有已关闭在该方向与以前的关闭 (Wsapiref_60z6.asp) 调用。当调用一次关闭时,将请求关闭套接字的部分。这是一个信号,它已停止使用的发送或接收进程 (或两者)。

WSAETIMEDOUT (10060)

  • 翻译: 连接已超时。
  • 说明: 因为被连接的方没有正确响应后一段时间,或已建立的连接失败,因为被连接的主机未能响应而导致连接尝试失败。

WSAECONNREFUSED (10061)

  • 翻译: 连接被拒绝。
  • 说明: 可以创建任何连接,因为目标计算机主动拒绝。此错误通常是因试图连接到的服务,在外部主机上,就是一种没有运行的服务器程序处于非活动状态。

WSAEHOSTDOWN (10064)

  • 翻译: 主机已关闭。
  • 说明: 套接字操作失败,因为目标主机已关闭。套接字操作遇到死的主机。尚未启动的本地主机上的网络活动。这些条件都更有可能由错误 WSAETIMEDOUT。

WSAEHOSTUNREACH (10065)

  • 翻译: 没有到主机的路由。
  • 说明: 套接字操作已尝试到无法访问的主机。请参阅 WSAENETUNREACH。

WSAEPROCLIM (10067)

  • 翻译: 进程太多。
  • 描述: Windows 套接字实现可以在同一时间使用的程序的数目有限制。如果达到限制,WSAStartup (Wsapiref_1v8y.asp) 可能会失败并生成此错误。

WSASYSNOTREADY (10091)

  • 翻译: 网络子系统不可用。
  • 说明: 如果 Windows 套接字实现当前不能正常工作,因为它用来提供网络服务的基础系统当前不可用,WSAStartup (Wsapiref_1v8y.asp) 将返回此错误。确认下列信息:
    • 确认适当的 Windows 套接字 DLL 文件的当前路径。
    • 确认他们没有试图在同一时间使用多个 Windows 套接字实现。
    • 如果有多个 Winsock DLL 在系统上,确认适用于网络子系统当前加载第一个 Winsock DLL 的路径中。
    • 请确认所有必需的组件当前已安装并正确配置根据 Windows 套接字实现文档。

WSAVERNOTSUPPORTED (10092)

  • 翻译: 超出范围的 Winsock.dll 版本。
  • 说明: 当前的 Windows 套接字实现不支持该程序请求的 Windows 套接字规范版本。请确保正在访问任何旧的 Windows 套接字 DLL 文件。

WSANOTINITIALISED (10093)

  • 翻译: 还没有执行成功的 WSAStartup。
  • 说明: 两个程序中都有不调用 WSAStartup (Wsapiref_1v8y.asp) 或 WSAStartup (Wsapiref_1v8y.asp) 失败。该程序可能正在访问的插座,并不属于当前活动任务 (即,正在尝试进行共享的任务之间的套接字),或 WSACleanup 已被调用的次数太多。

WSAEDISCON (10101)

  • 翻译: 正在进行的正常关机。
  • 说明: 通过 WSARecv (Wsapiref_4z1u.asp) 和 WSARecvFrom (Wsapiref_4wky.asp) 来指示远程方已开始正常关机序列将返回此错误。

WSATYPE_NOT_FOUND (10109)

  • 翻译: 类找不到类型。
  • 说明: 未找到指定的类。

WSAHOST_NOT_FOUND (11001)

  • 翻译: 找不到主机。没有此主机不存在。
  • 说明: 该名称不是正式的主机名或别名,或找不到它的数据库中,将会被询问。此错误可能也会返回的协议和服务的查询,并在相关数据库中找不到指定的名称的方法。

WSATRY_AGAIN (11002)

  • 翻译: 没有发现非权威主机。
  • 说明: 此错误通常是临时错误在主机名称解析,过程中,这意味着本地服务器没有收到响应来自授权服务器。稍后进行的重试可能会成功。

WSANO_RECOVERY (11003)

  • 翻译: 这是一个不可恢复的错误。
  • 说明: 此错误表明在数据库查找中出现某种形式的不可恢复的错误。如果找不到数据库文件 (例如,BSD 兼容主机、 服务或协议文件) 或 DNS 请求返回的一个严重错误的服务器,则可能会发生此错误。

WSANO_DATA (11004)

  • 翻译: 有效的名称、 请求的类型的任何数据记录。
  • 说明: 请求的名称有效并且已找到在数据库中,但它不具有正确的关联的数据,它正在解析的。这样的典型示例尝试就是一个主机名称到地址转换 (使用 gethostbyname [Wsapiref_0q5u.asp] 或 [Wsapiref_7bhu.asp] WSAAsyncGetHostByName) 使用的 DNS 服务器。但没有一个记录,则返回的 MX 记录。这指示主机本身存在,但不可直接访问。

WSA_INVALID_HANDLE (操作系统相关)

  • 翻译: 指定事件对象的句柄无效。
  • 说明: 某个程序尝试使用一个事件对象,但指定的句柄无效。

WSA_INVALID_PARAMETER (操作系统相关)

  • 翻译: 一个或多个参数不正确。
  • 说明: 使用一个 Windows 套接字函数,直接将映射到 Win32 函数的程序。Win32 函数表示一个或多个参数有问题。

WSA_IO_INCOMPLETE (操作系统相关)

  • 翻译: 重叠的 I/O 事件对象会在终止状态。
  • 说明: 该程序已尝试确定尚未完成的重叠操作的状态。在轮询模式中使用 WSAGetOverlappedResult (使用 fWait 标志设置为 FALSE) 来确定时,重叠的操作已完成的程序在操作完成之前收到此错误代码。

WSA_IO_PENDING (操作系统相关)

  • 翻译: 重叠的操作将在稍后完成。
  • 说明: 该程序已启动无法立即完成一个重叠的操作。操作完成后,以备稍后发送完成指示。

WSA_NOT_ENOUGH_MEMORY (操作系统相关)

  • 翻译: 没有足够的内存。
  • 说明: 使用一个 Windows 套接字函数,直接将映射到 Win32 函数的程序。Win32 函数表示所需的内存资源不足。

WSA_OPERATION_ABORTED (操作系统相关)

  • 翻译: 重叠的操作已中止。
  • 说明: 由于套接字已关闭或 WSAIoctl (Wsapiref_6ik2.asp) 中的 SIO_FLUSH 命令运行重叠的操作被取消。

WSAINVALIDPROCTABLE (操作系统相关)

  • 翻译: 无效的过程表从服务提供商联系。
  • 说明: 一个服务提供程序返回一个无效的过程表到 Ws2_32.dll。(通常原因是一个或多个函数指针是空的。)

WSAINVALIDPROVIDER (操作系统相关)

  • 翻译: 无效的服务提供程序的版本号。
  • 说明: 一个服务提供程序返回不 2.0 版本编号。

WSAPROVIDERFAILEDINIT (操作系统相关)

  • 翻译: 无法初始化服务提供商。
  • 说明: 两个服务提供程序的 DLL 不能加载 (LoadLibrary 失败),或提供程序的 WSPStartup/NSPStartup 函数失败。

WSASYSCALLFAILURE (操作系统相关)

  • 翻译: 系统调用失败。
  • 说明: 永远不会发生故障的系统调用失败时,将返回此错误。例如,如果对 WaitForMultipleObjects 的调用失败或某一注册表函数失败时尝试更改协议或名称空间目录,就会发生此错误。


参见:http://support.microsoft.com/kb/819124/zh-cn

原创粉丝点击