荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Deny (图形文件中几何参数的测量——毕业设计), 信区: Program
标  题: WinSock 2 错误消息列表
发信站: 荔园晨风BBS站 (Fri Dec 28 21:53:21 2001), 转信

WinSock 2 错误消息列表
最近更新: 17-Dec-1999
文章ID: CHS199485
------------------------------------------------------------------------
--------
这篇文章中的信息适用于:

Microsoft Windows 98

------------------------------------------------------------------------
--------


概要
本文对 WinSock 2 的错误消息作了一些描述。



更多信息
WSAEACCES (10013)

拒绝访问。

程序试图访问某个没有访问权限的套接字而遭拒绝。 例如,使用广播地址和
sendto 进行广播但却没有使用 setsockopt(SO_BROADCAST) 去设置广播权限。

WSAEADDRINUSE (10048)

地址已在使用。

通常每个套接字地址(协议/IP 地址/端口)只允许使用一次。 如果程序试图将某
个套接字绑定到一个 IP 地址/端口,而该 IP 地址/端口已经用于已有套接字、或
没有正确关闭的套接字、或仍然处于关闭进程中的套接字,那么就会出现这条错误
消息。 如果服务器程序需要将多个套接字绑定到同一个端口号,请考虑使用
setsockopt(SO_REUSEADDR)。 客户程序通常根本不需要调用绑定 - 连接操作将自
动选择未使用过的端口。

WSAEADDRNOTAVAIL (10049)

不能分配请求的地址。

请求地址在其上下文中无效。 通常是由于以下原因导致,即试图绑定到对于本地
计算机来说无效的地址,或者是要连接/发送到对于远程计算机来说无效的地址或
端口(如,端口 0)。

WSAEAFNOSUPPORT (10047)

协议系列不支持地址系列。

使用的地址与请求协议不兼容。 所有套接字都是使用相关的“地址系列”(如
AF_INET 用于 Internet 协议)和普通协议类型(如 SOCK_STREAM)创建的。 如
果在套接字调用中明确请求不正确的协议,或者某个套接字(如 sendto 中)使用
错误组的地址,则会返回此错误。

WSAEALREADY (10037)

操作已在进行。

在某个非阻塞套接字上试图进行一个操作,但该套接字上操作正在进行中,即在已
经连接的套接字上第二次调用连接,或者取消已经被取消或已经完成的异步请求
(WSAAsyncGetXbyY)。

WSAECONNABORTED (10053)

软件造成连接终止。

已建立的连接由主机中的软件导致终止,可能是由于数据传输超时或协议错误所至


WSAECONNREFUSED (10061)

连接被拒绝。

因为目标计算机当前拒绝连接,所以任何连接都不能建立。 这通常是由于以下原
因所至,即试图连接到外部主机上不活动的服务(如,没有服务器程序运行的主机
)。

WSAECONNRESET (10054)

连接被通信对等方复位。

现有连接被远程主机强制关闭。 如果远程主机的对等程序突然停止,主机将重新
启动,或者远程主机强制关机(hard close),通常会出现这种结果(有关远程套
接字上 SO_LINGER 选项的详细信息,请参见 setsockopt)。

WSAEDESTADDRREQ (10039)

需要目标地址。

请求的地址在一个套接字中从操作中忽略。 例如,如果用远程地址 ADDR_ANY 调
用 sendto,将返回该错误。

WSAEFAULT (10014)

坏地址。

当使用指针做调用参数时,系统检测到一个无效的指针地址。 如果程序传递无效
的指针值,或者缓冲区长度太小,就会发生这种错误。 例如,参数 struct
sockaddr 的长度比 sizeof(struct sockaddr) 短。

WSAEHOSTDOWN (10064)

主机已关闭。

套接字操作失败,因为目标主机意外关机。 套接字操作遇到主机死机。 本地主机
上的网络活动还没有开始。 这些情况极有可能表现为错误 WSAETIMEDOUT。

WSAEHOSTUNREACH (10065)

没有到主机的路由。

套接字操作试图连到无法连接的主机。 请参见 WSAENETUNREACH

WSAEINPROGRESS (10036)

操作目前正在进行。

阻塞操作当前正在执行。 Windows Socket 只允许每个任务(或线程)有单个阻塞
操作等待执行,如果调用任何其它的函数(无论它引用该套接字或其它套接字),
该函数都会因 SAEINPROGRESS 错误而无法执行。

WSAEINTR (10004)

中断的函数调用。

因调用 WSACancelBlockingCall 中断阻塞操作。

WSAEINVAL (10022)

无效参数。

提供某些无效的参数(例如,指定 setsockopt 函数的无效层次)。 在某些实例
中,它还指套接字的当前状态,例如,在未侦听的套接字上调用“接受”(
accept)。

WSAEISCONN (10056)

套接字已连接。

在已经连接的套接字上发出连接请求。 如果在已经连接的套接字 SOCK_DGRAM 上
调用 sendto (对于 SOCK_STREAM 套接字,sendto 中的 to 参数被忽略了),有
些应用也返回此错误消息,虽然其它应用将此视为合法现象。

WSAEMFILE (10024)

打开的文件太多。

打开的套接字太多。 每个应用都可能有最大数量的套接字句柄可用,无论是全局
、每个进程或每个线程。

WSAEMSGSIZE (10040)

消息太长。

在数据报套接字上发送的消息比内部消息缓冲区和某种其它网络限制要大,或者用
于接收数据报的缓冲区比数据报本身小。

WSAENETDOWN (10050)

网络已关闭。

套接字操作遇到一个死掉的网络。 这可能表示网络系统(WinSock DLL 运行的协
议堆栈)、网络接口或本地网络自身有严重的故障。

WSAENETRESET (10052)

复位时网络中断连接。

连接的主机崩溃并重新启动。 如果试图在已经失败的连接上setsockopt(
SO_KEEPALIVE)也可能返回此错误。

WSAENETUNREACH (10051)

无法连到网络。

套接字操作试图连到无法连接的网络。 这通常意味着本地软件知道没有连到远程
主机的路由。

WSAENOBUFS (10055)

没有可用的缓冲区。

由于系统缓冲区空间不足或列队已满,不能执行套接字的操作。

WSAENOPROTOOPT (10042)

错误的协议选项。

在 getsockopt 或 setsockopt 调用中指定一个未知的、无效的或不受支持的选项
或层次。

WSAENOTCONN (10057)

套接字未连接。

由于套接字没有连接并且 (当使用 sendto 通过数据报套接字发送时) 没有提供地
址,发送或接收数据的请求没有被接受。 任何其它类型的操作也可能返回此错误
,例如,复位连接时 setsockopt 设置 SO_KEEPALIVE。

WSAENOTSOCK (10038)

在非套接字中进行套接字操作。

试图在非套接字中进行操作。 套接字句柄参数没有引用有效的套接字,或者选择
时,fd_set 的成员是无效的。

WSAEOPNOTSUPP (10045)

不支持此操作。

试图进行的操作没有得到引用对象类型的支持。 当套接字说明符不支持此操作时
,例如,试图接受数据包套接字中的连接时,通常会出现这种错误。

WSAEPFNOSUPPORT (10046)

不支持协议系列。

协议系列还没有在系统中进行配置,或者没有它存在的迹象。 对于
WSAEAFNOSUPPORT 来说意义稍有不同,但在大部分情况下可以互换,而且所有
Windows 套接字函数都返回其中某一种特定的 WSAEAFNOSUPPORT。

WSAEPROCLIM (10067)

太多的进程。

Windows 套接字实施对同时使用它的程序的数目可能有限制。 如果达到限度,
WSAStartup 可能会因此错误而失败。

WSAEPROTONOSUPPORT (10043)

不支持协议。

请求的协议还没有配置到系统中去,或者没有它存在的迹象。 例如,套接字调用
请求 SOCK_DGRAM 套接字,但却指定了流协议。

WSAEPROTOTYPE (10041)

套接字的协议类型错误。

套接字函数调用中指定的协议不支持请求的套接字类型的语义。 例如,ARPA
Internet UDP 协议不能用 SOCK_STREAM 套接字类型指定。

WSAESHUTDOWN (10058)

套接字关闭后不能发送。

不接受收发数据的请求,因为套接字在前一个关闭调用的指示下已经关闭。 通过
调用关闭,请求关闭部分套接字,这是收发数据或者收发都已经断开的信号。

WSAESOCKTNOSUPPORT (10044)

不支持套接字类型。

在此地址系列中,不支持指定的套接字类型。 例如,在某个套接字调用中可能选
择了某种可选类型 SOCK_RAW,但应用时却根本不支持 SOCK_RAW 套接字。

WSAETIMEDOUT (10060)

连接超时。

由于连接方在一段时间后没有正确的答复,连接尝试失败;或者由于连接的主机没
有反应,已建立的连接失败。

WSAEWOULDBLOCK (10035)

资源暂时不可用。

无法立即完成非阻塞套接字上的操作会返回此错误,例如,执行套接字中没有数据
排队被读取时的 recv 操作。 这不是致命错误,稍后可以可重试此操作。 作为调
用非阻塞 SOCK_STREAM 套接字上连接的结果,通常出现 WSAEWOULDBLOCK,因为建
立连接必须占用一些时间。

WSAHOST_NOT_FOUND (11001)

找不到主机。

不知道这样的主机。 主机名不是正式主机名或别名,或者在查询的数据库中找不
到它。 对于协议和服务查询也可能返回此错误,这意味着在相关数据库中没有找
到指定的名称。

WSA_INVALID_HANDLE (取决于操作系统)

指定的事件对象句柄无效。

某个程序尝试使用事件对象,但指定的句柄无效。

WSA_INVALID_PARAMETER (取决于操作系统)

一个或多个参数无效。

某个程序使用直接映射到 Win32 函数的 Windows 套接字函数。 Win32 函数通过
一个或多个参数指出问题。

WSAINVALIDPROCTABLE(取决于操作系统)

来自服务提供者的无效过程表。

服务提供者向 WS2_32.DLL 返回假过程(bogus proc)表。 (通常是由一个或多
个为“空”的函数指针所引起。)

WSAINVALIDPROVIDER (取决于操作系统)

无效的服务提供者版本号。

服务提供者返回的版本号不是 2.0。

WSA_IO_PENDING (取决于操作系统)

重叠操作将在稍后完成。

此程序启动了不能立即完成的重叠操作。 稍后操作完成时,将提供完成指示。

WSA_IO_INCOMPLETE (取决于操作系统)

重叠 I/O 事件对象没有处于指示状态。

程序试图确定还没有完成的重叠操作的状态。 对于在轮询模式中使用
WSAWaitForMultipleEvents 确定重叠操作何时完成的程序来说,在操作完成之前
会得到此错误代码。

WSA_NOT_ENOUGH_MEMORY (取决于操作系统)

可用内存不足。

某个程序使用直接映射到 Win32 函数的 Windows 套接字函数。 Win32 函数指出
缺乏所需的内存资源。

WSANOTINITIALISED (10093)

没有成功地执行 WSAStartup。

程序没有调用 WSAStartup,或 WSAStartup 失败。 程序可能访问当前活动任务未
拥有的套接字(例如,尝试共享任务之间一个套接字),或者 WSACleanup 被调用
的次数太多。

WSANO_DATA (11004)

有效名称,无所需类型的数据记录。

请求的名称有效并且是在数据库中找到的,但是它没有正进行解析的相关正确数据
。 相关的一个有用示例是:使用 DNS(域名服务器)的主机名 -> 地址转换尝试
(使用 gethostbyname 或 WSAAsyncGetHostByName),返回 MX 记录但没有“一
个”记录 ,表示主机本身存在,但没有直接连接到。

WSANO_RECOVERY (11003)

这是一个不可恢复的错误。

这表示在数据库检索过程中发生了某种不可恢复的错误。 可能是因为数据库文件
(如:与 BSD 兼容的 HOSTS、SERVICES 或 PROTOCOLS 文件)没有找到,或服务
器返回的 DNS 请求有严重错误。

WSAPROVIDERFAILEDINIT (取决于操作系统)

不能启动服务提供者。

服务提供者的 DLL 没有加载(LoadLibrary 失败)或提供者的
WSPStartup/NSPStartup 函数失败。

WSASYSCALLFAILURE (取决于操作系统)

系统调用故障。

当系统调用决不应当失败时返回的错误。 例如,如果对 WaitForMultipleObjects
 的调用失败,或者其中的一个注册表函数无法处理 theprotocol/namespace 目录


WSASYSNOTREADY (10091)

网络子系统不可使用。

因为用来提供网络服务的基础系统当前不能使用,所以此时 Windows 套接字实施
无法起作用,由 WSAStartup 返回这个错误。 用户应当检查:

当前路径中是否有适当的 Windows 套接字 DLL 文件。


是否尝试同时使用多个 Windows 套接字实现。 如果系统上有多个 WINSOCK DLL,
请确定路径中的第一个 WINSOCK DLL 对于当前加载的网络子系统来说是适当的。



Windows 套接字应用文档是否能保证当前安装了所有必须的组件,并正确地对它们
进行了配置。


WSATRY_AGAIN (11002)

没有找到非权威主机。

这通常是主机名称解析过程中的临时错误,意味着本地服务器没有从权威服务器得
到响应。 稍后再试或许能成功。

WSAVERNOTSUPPORTED (10092)

WINSOCK.DLL 版本超出范围。

当前的 Windows 套接字应用不支持程序请求的 Windows 套接字规范版本。 检查
是否使用了旧的 Windows 套接字 DLL 文件。

WSAEDISCON (10094)

进程中适当的关闭。

由 recv 返回,WSARecv 指出远程端已经启动适当的关闭顺序。

WSA_OPERATION_ABORTED (取决于操作系统)

重叠操作终止。

重叠操作由于关闭套接字、或在 WSAIoctl 中执行 SIO_FLUSH 命令而被取消。
--
                 _(_)_                        wWWWw
     @@@@       (_)@(_)  vVVVv    _     @@@@  (___)
    @@()@@ wWWWw  (_)\   (___)  _(_)_  @@()@@   Y
     @@@@  (___)     `|/   Y   (_)@(_)  @@@@   \|/
      /      Y       \|   \|/   /(_)    \|      |/
   \ |     \ |/       | /\ | / \|/       |/    \|
     |///  \\|/// \\\\|//\\|///\|///  \\\|//  \\|//
  ^^^^^^^^^^^^^^^^^蝴蝶都到哪去了呢^^^^^^^^^^^^^^^^^^


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店