版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、常见socket错误返回码常见 SOCKET 错误返回码(转)WSAEINTR (10004) 被中断的系统呼叫当以阻拦式进行的 WinSock 函式被 WSACancelBlockingCall() 中 断的时候, 这个阻拦式函式会得到 WSAEINTR 这个错误讯息。 读者 要注意的是,当你的程式有用 WSACancelBlockingCall 去中断阻 拦式函式的时候, 你必须为这个阻拦式函式写处理 WSAEINTR 错误 讯息的程式码,否则你的程式可能会出现些无预期的错误。原则上,所有能以阻拦式进行的函式都可能会发生这个错误。WSAEBADF (10009) 错误的档案代码柏克莱 so
2、cket 介面中,档案描述子和 socket 描述子是相通的,开 启 socket 可以想像成开启一个档案。 WSAEBADF 在柏克莱 socket 介面的意义是指错误的 socket 描述子,这个错误的 socket 描述子可能是未经开启的 socket 或是以关闭的 socket 。在 WinSock 中有个相通的错误代码 WSAENOTSOCK ,用来指定错 误的 socket 描述子。详细说明请参考 WSAENOTSOCK 部分。WSAEACCES (10013) 无此权限 对于柏克莱 socket 介面函式,这个错误发生的原因通常是开启一个 不具有开启权限的档案或 socket 。
3、例如在 UNIX 上,一般的使用者 不能开启 SOCK_RAW 的 socket ,通常是超级使用者 (super user) 才有此权限。如果一般的使用者企图开启 SOCK_RAW 的 socket , 将会得到这个错误讯息。对于 WinSock API 函式介面,发生此错误的函式有二: send() 和 sendto() 。当利用 send() 或 sendto() 传送资料的时候,将目的位址 设成广播位址 ( broadcast address ) ,但是并未呼叫 setsockopt() 设定 SO_BROADCAST 选项时便会发生 WSAEACCES 错误。WSAEFAULT (1
4、0014) 错误的记忆体位址 系统侦测出使用错误的记忆体位址。呼叫 WinSock 函式时,常常会 有参数是以指标的方式传入,这个指标可能是指向一个结构,如 sockaddr_in 结构,或是指向一个资料缓冲区。当程式不小心传入 一个错误记忆体未指的指标时,就会发生 WSAEFAULT 这个错误。 此外,当指标所指向的记忆体区块太小的时候,也会发生这个错误。WSAEINVAL (10022) 参数错误 如果传入不正确的参数给 WinSock 函式的话,会导致 WSAEINVAL 这个错误。如果参数是一个结构的指标, 此结构内容填入不正确的值, 也会导致这个错误。例如, shutdown() 函
5、式的 how() 参数只能是 0、 1 或 2,若是设定成其他数值,就会出现这个错误。在网路程式的设计中, 函式和函式之间的呼叫通常有一定的顺序, 如 过不照这个顺序进行, 也会出现这个错误。 底下是针对每个相关函式 的详细说明。函式错误发生的时机accept()呼叫 accept() 之前没有成功呼叫 listen()bind()已经成功呼叫 bind() 函式而指定 stocket 的名称了getstockname()没有呼叫 bind() 函式指定 socket 名称listen()已经处于连接状态或是 socket 没有呼叫 bind() 函式指定 socket 名称recv() 和
6、recvfrom()对于 datagram socket ,socket 没有呼叫 bind() 函式指定 IP 位址、port 和协定等;对于 stream socket ,连接尚未建立send() 和 sendto()对于 datagram socket ,socket 没有呼叫 bind() 函式指定 IP 位址、port 和协定等;对于 stream socket ,连接尚未建立原则上,所有函式其参数所能设定的值有一定的范围, 或是有一些特 定的值,这些函式都有可能发生这个错误。WSAEMFILE (10024) 太多开启的档案柏克莱 socket 介面的解释是开启过多的档案,超过档案
7、开启数的限制。在柏克莱 socket 将档案和 socket 的开启以档案描述子 (filedescriptor) 描述。 WinSock 对于 socket 是有别于档案的,WSAEMFILE 在 WinSock 的意义是开启太多的 socket 。这个程式通常发生在同一部机器中执行过多的网路程式, 以致开启过多的 socket 。另一种可以避免的错误是应用程式没有正常的关闭不 用的 socket ,以致 socket 资源耗尽。WSAEWOULDBLOCK (10035) 函式作用阻拦中当函式作用是以非阻拦式进行, 而此刻的函式作用再返回时其函式作 用尚未完成的时候,就会出现这个错误。举例
8、来说,假设 send() 以 非阻拦式传送一段资料至远端主机,假设函式返回时得到 WSAEWOULDBLOCK 这个错误,这样表示这一段资料不能在这一 次的 send() 函式呼叫中传送完。对于 connect() 函式,这个错误表示尚未成功地连接上远端主机,连 接要求正在进行中。若你的程式中有利用 setsockopt() 函式以 SO_LINGER 设定时限,在呼叫 closesocket() 时有可能出现这个错 误。对于非同步的网路资料函式 ( WSAAsyncGetXXXXByYYYY() 而 言,得到 WSAEWOULDBLOCK 错误,表示要查询的网路资料目前 无法取得。 这通常是
9、个暂时性的错误, 应用程式可能稍后再呼叫相同 的函式就会成功。WSAEINPROGRESS (10036) 有阻拦函式正在执行中 对于每个 process 或 thread ,WinSock 只允许 ”一 ”个阻拦式函式 的执行。如果已有阻拦式函式正在执行, 而又呼叫到 WinSock 函式, 函式会传回 WSAEINPROGRESS 的错误。这个错误也会发生在需要长执行时间的函式,如 connect() 。有一种 情况是这样:当执行 ”非阻拦式 ”的 connect() 函式两次,由于是非阻 拦式的 connect() ,第一次的呼叫传回 WSAEWOULDBLOCK 错误 码。此时要求连接
10、动作尚未完成,第二次的 connect() 呼叫就会得到 WSAEINPROGRESS 的错误。我们的建议是在有可能发生这种错误的函式呼叫前加上 WSAIsBlocking() 判断是否有阻拦式函式正在执行。 如果有的话, 我 们可能需要将正在进行的阻拦式函式取消掉, 或是将目前想要做的事 取消掉。WSAEALREADY (10037) 函式作用已完成这个错误的意思在柏克莱 socket 介面和 WinSock 函式的解释上有 很大的差别。柏克莱 socket 介面的解释是函式作用已完成;在Win Sock中,WSAEALREADY的意思是:”你想要取消的非同步事件已经被取消了! ”,也就是当
11、你呼叫 WSACancelAsyncRequest() 试图去取消一个非同步事件时,而该事件已被取消了。WSAENOTSOCK (10038) 非法的 socket通常 WinSock 函式都要以 socket 描述子当参数传入,如果这个 socket 描述子所代表的 socket 不是正确开启的或是根本没有开启, 函式就会得到 WSAENOTSOCK 错误。原则上,只要以 socket 描 述子当参数传入的函式都有发生 WSAENOSOCK 错误的可能。WSAEDESTADDRREQ (10039) 需要对方位址当你要传送资料给远端机器,必须指定对方的位址 (和 port 等等 ), 才能正
12、确送达。检查看看你的应用程式是否在呼叫 connect() 或 sendto() 时,正确地填入对方的 sockaddr 结构。WSAEMSGSIZE (10040) 讯息太长,缓冲区无法容纳 这个错误发生原因是由于讯息资料过大, 缓冲区无法容纳, 这里的缓 冲区可能是使用者指定的或是系统内部用的缓冲区。 会发生这个错误 的函式有四 : 函式错误发生的时机recv() 、 recvform()利用 datagram socket 接收资料时,如果 recv() 、 recvform() 指定 的缓冲区长度小于接收进来 datagram ,这时后过长的 datagram 会 被丢弃并告诉函式 W
13、SAEMSGSIZE 这个错误send() 、sendto()利用 datagram socket 传送资料时,如果送出的资料缓冲区大于 WinSock 所能传递 datagram 的最大长度, 这时 send() 和 sendto() 传回发生 WSAEMSGSIZ 这个错误讯息WSAEPROTOTYPE (10041) 错误的协定型别错误产生的原因是在 socket() 函式呼叫时指定了 WinSock 不支援的 协定举例来说, 你不可以在 steam socket(SOCK_STREAM) 设定以 UDP 协定传输 (IPPRO_UDP) 。 stream socket 并不支援 UDP
14、 通讯 协定。如果你真的有心去测试的话,程式中故意如此呼叫socket():hSock=socket(AF_INETSOCK_STREAM ,IPPROTO_UDP); 你会发现,这样的 socket() 函式呼叫会得到 WSAEPROTONOSUPPORT 错误。这显然不对,照理应该得到 WSAEPROTOTYPE 这个错误才对。 WSAEPROTOTYPE 这个错 误表示指定了错误的协定,而所指定的协定是该位址家族 (协定家族 ) 所支援的, 但不适用于 socket 型别。以上述的例子来看, UDP 协定 是属于 AF_INET 这个位址家族,但是并不能用于 stream socket(
15、SOCK_STREAM socket) 上。 WSAEPROTONOSUPPORT 这个错误表示所指定的协定是该协定 家族所不支援的,意思上和 WSAEPROTOTYPE 有点出入。事实上, WSAEPROTOTYPE 和 WSAEPROTONOSUPPORT 之间 的差别是微乎其微的。 在发展网路程式的时候, 这两种错误都是代表 着同一种状况 -协定指定错误。总之,你永远也没办法试出 WSAEPROTOTYPE 这个错误。WSAENOPROTOOPT (10042) 错误的协定选项 (option) 这个错误主要是针对 getsockopt() 和 setsockopt() 函式的。这两个
16、函式可以以参数设定不同的选项而有不同的作用。 对于每个选项多多 少少会有些限制, 如有些选项只能用在 stream socket ,而有些只能 用在 datagram socket 。如果违反这些限制,就会发生这个错误。请看下表 :SO_DONTLINGERSO_KEEPALIVESO_LINGERSO_OOBINLINE不支援这些选项TCP_NODELAYdatagram socket ( SOCK_DGRAM )SO_DEBUGSO_DONTROUTESO_RCVBUFSO_SNDBUFTCP_NODELAY有些厂商的 WinSock TCP/IP 协定核心不支援这些选项SO_ACCEPT
17、CONNSO_ERRORSO_TYPE 这些选项只适用于 getsockopt() 函式,不能作用于 setsockopt() 函 式WSAEPROTONOSUPPORT (10043) 不支援的协定WinSock 协定核心不支援所指定的通讯协定。举例来说当你用 socket() 函式时,第二个参数指定为 SOCK_STREAM ,第三个参数 指定为 IPPROTO_ICMP ,如此 socket() 呼叫会得到 WSAEPROTONOSUPPORT 这个错误。 WinSock 1 。1 版并不支 援 ICMP 协定,所以呼叫 socket() 指定 ICMP 这个协定,就会发生 错误。事实上
18、,产生 WSAEPROTONPSUPPORT 错误的状况不只 这样,详见 WSAEPROTOTYPE 。WSAESOCKTNOSUPPORT (10044) 不支援的 socket 型别 目前使用的 WinSock 版本不支援函式所指定的 socket 型别。举例 来说,完全根据 WinSock 1.1 版的规格书发展的 WinSock 协定核 心,并不支援 SOCK_RAW 这个 socket 型别。在呼叫 socket() 函式 时,位址家族选 AF_INET( PF_INET ) 而 socket 型别选 SOCK_RAW 的话,就会发生这个错误。有些厂商发展的 WinSock 协定核心
19、除了支援 WinSock 1.1 版的规 格书所规范之外,还提供许多不同的功能。 我们建议您在发展程式时, 如果有必要用到这些额外的功能, 请好好考虑一下和其他环境相容性 的问题。WSAEOPNOTSUPP (10045) 作用函式不支援此类 socket 函式作用不支援目前 socket 型别。举例来说, accept() 和 listen() 函式只能作用在连接导向的 socket(stream socket) ,也就是 stream socket 上。对于 recv() 、 recvform() 、 send() 和 sendto() 函式, MSG_OOB 也是只能用于连接导向的 so
20、cket 。WSAEPFNOSUPPORT (10046) 不支援的协定家族 目前的 WinSock 协定核心不支援所指定的协定家族。这个错误和WSAEAFNOSUPPORT 很像,目前这个错误被WSAEAFNOSUPPORT 所取代了,读者可以参考 WSAEAFNOSUPPORT 说明部分。WSAEAFNOSUPPORT (10047) 不支援的位址家族使用协定不支援指定的位址家族。对于 socket() 函式,错误发生原 因是函式转物错误的参数。 对于以 sockaddr 结构为参数的函数, 错 误发生的原因常是网路协定不支援 sockaddr 结构中 (sin_family 成 员)指定
21、的位址家族。WSAEADDRINUSE (10048) 位址已被指定了所指定的 ”位址 ”正在使用中。这里的位址是指 socket 的名称,包含 三部分:协定、 port 和 IP 位址。这个错误发生的原因通常是应用程 式试图利用 bind() 函式去指定 port 时,此 port 已被其他应用程式所 占用了。这种情况发生于在同一部主机上执行两个相同性质(指定相同 socket 名称 ) 的 server 程式,第二的程式会因为第一个程式先占 用某个 port 而得到此错误讯息。还有一种常见的情况就是在撰写 client 程式时,利用 bind() 去指定 socket 的 port ,此举
22、常会有这个错误发生。并非不能用 bind() 去指 定 socket 的 port ,而是你无法确定程式执行的时候, 所指定的 port 是否有其他程式正在使用。通常很少会在 client 程式中呼叫 bind() 函式,一般的 client 程式都是让系统帮你选一个适当的 port 。此外,应用程式可以利用 setsockopt() 的 SO_REUSEADDR 选项, 允许 port 可以重复使用,可是我们并不鼓励这样做。这样可能会造 成 TCP/IP 核心在判断应用程式上的困扰。WSAEADDRNOTAVAIL (10049) 无法指定位址 错误发生的原因通常是指定了该部机器不应该有的位
23、址。 这里的位址 包含三个部分:网路协定、 port 和 IP 位址。在柏克莱 socket 介面中,呼叫 bind() 时,若指定的 IP 位址不是本 地机器该有的位址, 就会出现这个错误。 在呼叫 connect() 或 sendto() 函式时,如果 sockaddr_in 结构中的 sin_port 填 ”0”,如此也会导 致这个错误 (在 UNXI 上是 EADDRNOTAVAIL 错误 )。对于 WinSock 函式,错误发生的时机和柏克莱 socket 函式类似, bind() 和 connect() 都会导致这样的错误。对于 WinSock 函式,错误发生的时机和柏克莱 soc
24、ket 函式类 似 ,bind() 和 connect() 都会导致这样的错误。 WinSock 1.1 版的规 格书中并没有提到 bind() 函式会导致 WSAEADDRNOTAVAIL 错 误,不过根据我们测试的结果, bind() 也会导致这样的错误。WSAENETDOWN (10050) 网路出错下层的网路系统发生问题, WinSock 函式无法执行。这是一个相当 严重的问题,这会使得几乎所有的 WinSock 函式呼叫失败。若你的 WinSock 函式发生错误,那么请你该好好地检查你的网路卡,网路 卡驱动程式和你的 WinSock 协定核心。WSAENETUNREACH (1005
25、1) 无法连上指定的网路在柏克莱 socket 介面中,这个错误的意思是无法和对方网路系统取 得联系。在 WinSock 1 。1 规格中, WSAENETUNREACH 相通于 柏克莱 socket 介面中的 ETHOSTUNREACH 。WSAENETRESET (10052) 网路已被重新设定 对方主机出错而重新开机。 在本地主机呼叫和传送资料有关的函式就 会得到这个错误。对于 setsockopt() 函式,这个错误发生的原因在 于试图设定 SO_KEEPALIVE 于逾时 (timeout) 的连接。WSAECONNABORTED (10053) 中断连接在连接建立后,当有某种原因导
26、致 TCP/IP 协定核心不断地重送资料, 而且都重送失败的时候, TCP/IP 协定将连接中断。此时,应用程式 就会收到 WSACONNABORTED 这个错误。WSAECONNRESET (10054) 连结已被对方重新设定连结已被对方系统强迫中断了。 TCP/IP 协定核心如果侦测出 stream socket 的连接发生问题的话,它会传一个表示连接重设 (reset) 的讯息给对方。 此时对方程式会得到 WSAECONNRESET 的 错误讯息。WSAENOBUFS (10055) 缓冲区过小WinSock 核心无法配置足够的缓冲区,无法执行该程式。这个错误 的发生和整个 Window
27、s 系统资源有关。 如果整个 Windows 本身可 用的资源就很少,所能同时执行的程式也少。也有可能是执行了 " 不 良"的应用程式,没有正常的使用和归还系统资源 (如记忆体 )。或是 某些应用程式的不正常关闭,也会占用系统资源。WSAEISCONN (10056) socket 已经连接 网路函式通常会有一定的呼叫顺序, 有的函式呼叫成功后便不能再呼叫,否则会出现错误。当连接建立时,client程式呼叫()成功,而server 程式呼叫 accept() 成功。此时若 client 程式再呼叫一次 connect() 函式的话, 会得到 WSAEISCONN 这个错误,
28、 表示该 socket 已经处 于连接状态了。如果 client 程式呼叫 listen() 函式的话也会出现这个 错误,表示不应该在此时呼叫这个函式。对于 server 程式,如果 socket 已经处于连接状态,程式呼叫 connect() 函式的话,也会得 到 WSAEISCONN 这个错误。上述错误是发生在 stream socket 上,因为 stream socket 才会建 立连接。 对于 datagram socket ,多次成功的 connect() 函式呼叫是 被允许的 (对于 datdgram socket 而言,呼叫 connect() 函式的目的 不在于建立连接 )。
29、 datagram socket 发生此错误的原因是在 sendto() 函式上,当呼叫 sendto() 传送 datagram 时,如果对方位 址填入 INADDR_ANY“( 0.0.0.0 ”)而 port 填入 0(在 sockaddr_in 结 构中 ) ,就会导致 WSAEISCONN 这个错误。WSAENOTCONN (10057) socket 尚未连接 网路函式通常会有一定的呼叫顺序, 有些函式必须先呼叫成功某函式 才能呼叫。 WSAENOTCONN 这个错误发生的原因很明显,就是在 连接建立之前, 你试图从连接对方取得资料或是传送资料到对方, 就 会发生 WSAENETC
30、ONN 这个错误。举例来说,对于 stream socket ,如果在建立连结前呼叫 send() 试 图传送资料,或者是呼叫 recv() 试图取得资料,就会发生这个错误, 告诉你 socket 尚未建立连接。 你如果呼叫了 getpeername() 这个函 式试图去取得连接对方的 socket ,当然也会出现这个错误。对于 setsockopt() 这个函式, 如果设定 SO_KEEPALIVE ,但连接已被中 断的话,也会出现 WSAENETCONN 这个错误。初学者可能在呼叫 connect() 函式之后没有检查是否函式呼叫错误, 以致不知道是否连接已正确建立。WSAESHUTDOW
31、N (10058) socket 已经关闭这个错误码的意思是,无法再传送资料了,因为 socket 已经经由 shutdown() 函式而关闭了。当你利用 shutdown() 关闭 socket 之后, WinSock 的 TCP/IP 协定核心就会关闭这个 socket 的传送或接收的 功能。有一点要注意的是,这个错误只会在 stream socket 出现。WSAETOOMANYREFS (10059) 参照 (reference) 太多,资源耗尽 在 UNIX 作业系统中的解释是指系统核心资源消耗殆尽。不过在 WinSock 1.1 版的规格书中并没有任何一个函式会发生这种错误。WSA
32、ETIMEDOUT (10060) 连接逾时 (timeout)当程式试图利用 connect() 连接一台远端主机时, 此主机一直没有回 应,经过了一段时间后, TCP/IP 协定核心便会传回 connect() 函式 WSAETIMEDOUT 这个错误讯息。发生这个错误的原因可能是程式 所要连接的远端主机的系统发生问题, 或者根本没有这一台主机。 也 有一种可能的原因是本地机器的网路系统出现问题, 导致本地主机无 法正常与远端主机联系。 检查你的网路系统的设定, 看看有什么不当 的地方,如闸道器 (gateway) 的设定, 主机名称表 (hosts) 内主机名称 和网路位址的对照有错误等
33、等。WSAECONNREFUSED (10061) 连接受拒 连接要求受到对方机器的回绝, 无法和对方建立连接。 这个错误并不 是网路系统出了问题,而是对方机器的 server 程式拒绝 client 程式 的连接要求,或者是根本没有这个 server 程式存在。当 TCP/IP 核 心收到某个连接要求时,会查看系统中是否有某 server 程式所监听 的 port 正好是这个连接要求所要连接的 port ,如果没有此 server 程式,TCP/IP核心会回绝一个 WSAECONNREFUSED 给对方程式。通常发生这个错误的原因有几个。 使用者可能连接到错误的远端主机 或是错误的 port
34、 ,也有可能是远端主机和 port 对了,但是 server 程式并没有执行。 检查看看程式中的 sockaddr_in 结构有没有填错 ? sockaddr_in 中的 IP 位址和 port 是不是以网路位元组顺序排列。WSAELOOP (10062) 太多层的符号式链结 (Symbolic link)在 UNIX 作业系统中,这个错误的意思是指路径参考过多的符号式链 结 (symbolic link) 。WSAENAMETOOLONG (10063) 档名过长在 UNIX 作业系统,这个错误的意思是指欲开启档案的路径名称(包括档案名称 )太长。WSAEHOSTDOWN (10064) 对
35、方主机关闭 在柏克莱 socket 介面的解释中,这个错误发生的原因是当远端主机关闭或系统出问题。WSAEHOSTUNREACH (10065) 无法联系对方主机在柏克莱 socket 介面中,这个错误的意思是无法和对方主机取得联 系。在 WinSock 方面,有类似的错误代码,读者可以参考 WSAENETUNREACH 这个错误的说明。WSAEPROCLIM (10067) Too many processes.A Windows Sockets implementation may have a limit on the number of applications that may us
36、e it simultaneously.WSAStartup() may fail with this error if the limit has been reached.WSASYSNOTREADY (10091) 主机网路系统尚未备妥本地主机的网路系统尚未能正常运作。 若发生这个错误, 读者可能要 检查一下有没有 WINSOCK.DLL( 或 32 位元版本的 WSOCK32.DLL) 这个档案 ? 这个档存放的路径正确吗 ?WSAVERNOTSUPPORTED (10092) 不支援的 WinSock.DLL 版本 错误发生的原因是在呼叫 WSAStartup() 函式时所指定的 W
37、inSock 版本不被现有的 WinSock 版本所支援。若发生这个错误,读者要确 定一下本地 Windows 系统中的 WinSock 版本和该版本所能支援的 版本是如何等等。 通常较新的版本同时能支援新旧版本的 WinSock , 建议读者能使用较新的 WinSock 版本。WSANOTINITIALISED (10093) 未执行 WSAStartup()应用程式没有呼叫 WSAStartup() 或是呼叫 WSAStartup() 失败。应 用程式要成功地呼叫 WSAStartup() 才能使用 WinSock.DLL ,否则 会有此错误讯息出现。WSAEDISCON (10101)
38、Graceful shutdown in progress.Returned by WSARecv(), WSARecvFrom() to indicate the remote party has initiated a graceful shutdown sequence.WSATYPE_NOT_FOUND (10109) Class type not foundThe specified class was not found.WSAHOST_NOT_FOUND (11001) 已经证实找不到主机 当你使用网路资料函式寻找主机的资料, 而该主机不存在时, 就会发 生这个错误。寻找网路主机
39、资料的方法通常是先寻找本地主机的网路 名称表 (host 档),如果找不到再透过 DNS 的途径去找,如果再找不 到,通常就会回给函式这样的错误。发生这样的错误时,检查看看本地主机的主机名称解译的设定有没有 问题。比较可能出现问题的是 DNS 的设定,确定是不是设定错误的 DNS server 。如果 DNS server 正确,确定一下 DNS server 有没 有跑起来。你可以利用 ping 这个程式看看 DNS server 有没有跑起 来,如果没有 ping 这个程式,你可以试着去解释一个确定存在的主 机,看看 DNS server 有没有在正常运作中。WSATRY_AGAIN (1
40、1002) 找不到网路资料,但未被证实 这是一个暂时性的错误, 告诉你目前找不到所要找的网路资料, 你可 以再试试看。WSANO_RECOVERY (11003) 无法挽救的错误对于查询主机名称而言,这个错误发生的原因是由网域名称系统 (Domain Name System, DNS) 所出现的错误所引起的。 这些错误包 括 DNS 的 FORMERR 、 REFUSED 和 NOTIMP 等错误,详细请参 考 RFC1035 有关网域名称系统的文件。对于查询服务和协定资料而言, 这个错误发生的原因是找不到存放网 路资料的资料库。这个资料库通常是在本地主机上的档案,如 SERVICES 和 P
41、ROTOCOL 这两个档。WSANO_DATA (11004) 名称合法,但查无此资料查询格式是正确的,但是查无此资料存在。这通常是暂时性的错误, 可能在不同的网路资料伺服器中能找到这份资料。WSAPROVIDERFAILEDINIT (OS dependent) Unable to initialize a service provider.Either a service provider's DLL could not be loaded(LoadLibrary() failed) or the provider'sWSPStartup/NSPStartup functi
42、on failed.WSASYSCALLFAILURE (OS dependent) System call failure.Returned when a system call that should never fail does. For example, if a call to WaitForMultipleObjects() fails or one of the registry APIs fails trying to manipulate the protocol/namespace catalogs.WSA_INVALID_HANDLE (OS dependent) Specified event object handle is invalid.An application attempts to use an event object, but the specified handle is not valid.WSA_INVALID_PARAMETER (OS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖南科技学院《大学计算机基础》2021-2022学年第一学期期末试卷
- 重庆市万州区2023-2024学年高三化学下学期8月月考试题含解析
- 天津市河东区 2022-2023 学年高二上学期期末质量检测化学试题
- 民法典买卖合同课件
- 大学生军训心得体会范文2024(34篇)
- 安徽省宿州市时村中学2024届高考临考冲刺语文试卷含解析
- 2024年中国移动多媒体数字车市场调查研究报告
- 2024至2030年中国透明圆珠笔行业投资前景及策略咨询研究报告
- 2024至2030年中国美容美发管理软件行业投资前景及策略咨询研究报告
- 2024至2030年蛋禽专用饲料项目投资价值分析报告
- 【MOOC】当前环境热点问题-河南理工大学 中国大学慕课MOOC答案
- 中华人民共和国能源法
- 2024官方兽医考试更新题库及答案
- T-SHPPA 029-2024 人用经验数据收集技术规范
- 大美劳动智慧树知到期末考试答案章节答案2024年江西财经大学
- 《乌鲁木齐市国土空间总体规划(2021-2035年)》
- 无人机应用技术专业申报表
- 蒋诗萌小品《谁杀死了周日》台词完整版
- 企业廉政教育培训课件
- 报价单(报价单模板)
- 职业暴露针刺伤应急预案演练脚本-
评论
0/150
提交评论