2024年3月11日发(作者:)

windows sockets在头文件winsock.h中定义了所有的错误码,它们包括以“ws

a”打头的windows sockets实现返回的错误码和berkeley sockets定义的错误

码全集。定义berkeley sockets错误码是为了确保原有软件的可移植性。

a.1 windows sockets错误码列表

表a.1列出了wsagetlasterror()函数返回的可能错误码和它们的解释,

它们可分为四个部分。

错误码的第一部分是用来解决在不同的c编译中对标准c错误码的不一致

的定义。错误码的第二部分是标准berkeley sockets错误码的windows sockets

版本。错误码的第三部分包括特定windows sockets扩充的错误码。错误码的第

四部分由windows sockets的getxbyy()和wsaasyncgetxbyy()函数返回,相当

于berkeley软件中由变量h_errno返回的错误(事实 上,windows sockets在

头文件winsock.h中已将h_error定义成其值为wsagetlasterror()的一个宏),

它们相当于由域名服务 (domain name service)返回的各种失败。假如windows

sockets实现没有使用域名服务,它将使用最合适的代码。一般地,windows

sockets应用程序应该将错误wsahost_not_found和wsano_data解释为指示要

害字(名字,地址等)没有找着,而错误 wsatry_again和wsano_recovery是

提醒名字服务自身是非操作的。

错误码由windows sockets 规范定义,在所有同一版本规范的windows

sockets兼容实现中,它们是一致的。

表a.1 windows sockets错误码

windows sockets错berkeley 对应错错误号 解 释

误码 误码

wsaeintr eintr 10004 同标准c

wsaebadf ebadf 10009 同标准c

wsaeacces eacces 10013 同标准c

wsaefault efault 10014 同标准c

wsaeinval einval 10022 同标准c

wsaemfile emfile 10024 同标准c

wsaewouldblock ewouldblock 10035 同bsd

wsaeinprogress einprogress 10036 当一个阻塞函数正在进行时,调

用任何windows sockets api函

数均返回此错误

wsaealready ealready 10037 同bsd

wsaenotsock enotsock 10038 同bsd

wsaedestaddrreq edestaddrreq 10039 同bsd

wsaemsgsize emsgsize 10040 同bsd

wsaeprototype eprototype 10041 同bsd

wsaenoprotoopt enoprotoopt 10042 同bsd

wsaeprotonosupport eprotonosupport 10043 同bsd

wsaesocktnosupport esocktnosupport 10044 同bsd

wsaeopnotsupp eopnotsupp 10045 同bsd

wsaepfnosupport

wsaeafnosupport

wsaeaddrinuse

wsaeaddrnotavail

wsaenetdown

epfnosupport

eafnosupport

eaddrinuse

eaddrnotavail

enetdown

10046

10047

10048

10049

10050

wsaenetunreach

wsaenetreset

wsaeconnaborted

wsaeconnreset

wsaenobufs

wsaeisconn

wsaenotconn

wsaeshutdown

wsaetoomanyrefs

wsaetimedout

wsaeconnrefused

wsaeloop

wsaenametoolong

wsaehostdown

wsaehostunreach

wsasysnotready

enetunreach

enetreset

econnaborted

econnreset

enobufs

eisconn

enotconn

eshutdown

etoomanyrefs

etimedout

econnrefused

eloop

enametoolong

ehostdown

ehostunreach

10051

10052

10053

10054

10055

10056

10057

10058

10059

10060

10061

10062

10063

10064

10065

10091

10092 wsavernotsupported

wsanotinitialised 10093

wsaediscon 10101

wsahost_not_found host_not_found 11001

wsatry_again try_again 11002

wsano_recovery no_recovery 11003

wsano_data no_data 11004

a.2 windows sockets错误码扩展描述

同bsd

同bsd

同bsd

同bsd

同bsd。任何时候只要windows

sockets实现检测到网络子系统

失败,它就报告此错误。

同bsd

同bsd

同bsd

同bsd

同bsd

同bsd

同bsd

同bsd

同bsd

同bsd

同bsd

同bsd

同bsd

同bsd

同bsd

由wsastartup() 返回,指示网

络子系统无法使用。

由wsastartup() 返回,指示

windows sockets

dll 不能支持此应用程序。

由除wsastartup()之外的其它

函数返回,指示 尚没有一次成

功的wsastartup() 调用执行

过。

由wsarecv()和wsarecvfrom()

返回,指示远程方已经初始化了

一个“雅致”的shutdown序列。

同bsd

同bsd

同bsd

同bsd