对于在基于 UNIX 的环境中的 TCP/IP 用户,下表列出了某些最常见的错误原因码 (errno)。它不是完整的错误列表。可以在文件 /usr/include/sys/errno.h 中找到 Errno。针对每一种操作系统给出了errno
号码。
基于 UNIX 的 TCP/IP errno|
Errno |
Errno号码|
AIX |
HP-UX |
Solaris |
UnixWare |
Linux |
|---|
|
说明 |
|---|
|
EINTR |
4 |
4 |
4 |
4 |
4 |
系统调用中断。 |
|
EAGAIN |
11 |
11 |
11 |
11 |
11 |
资源临时不可用。 |
|
EBUSY |
16 |
16 |
16 |
16 |
16 |
资源正忙。 |
|
EMFILE |
24 |
24 |
24 |
24 |
24 |
每个进程文件描述符表已满。 |
|
EPIPE |
32 |
32 |
32 |
32 |
32 |
管道断开。 |
|
EADDRINUSE |
67 |
226 |
125 |
125 |
98 |
已经在使用指定的地址。 |
|
ENETDOWN |
69 |
228 |
127 |
127 |
100 |
网络已停止。 |
|
ENETUNREACH |
70 |
229 |
128 |
128 |
101 |
没有到达网络的可用路由。 |
|
ENETRESET |
71 |
230 |
129 |
129 |
102 |
重设时网络已卸下了连接。 |
|
ECONNRESET |
73 |
232 |
131 |
131 |
104 |
伙伴已重设了连接。 |
|
ENOBUFS |
74 |
233 |
132 |
132 |
105 |
系统中没有足够的缓冲区空间资源可用来完成调用。 |
|
ENOTCONN |
76 |
235 |
134 |
134 |
107 |
未连接套接字。 |
|
ETIMEDOUT |
78 |
238 |
145 |
145 |
110 |
连接超时。 |
|
ECONNREFUSED |
79 |
239 |
146 |
146 |
111 |
连接已被拒绝。若您正在尝试与数据库相连,则检查是否已成功启动了服务器上的数据库管理程序和 TCP/IP 协议支持。 若使用 SOCKS 协议支持,则还要确保在 SOCKS 服务器上已成功启动了 TCP/IP 协议支持。 |
|
EHOSTDOWN |
80 |
241 |
147 |
147 |
147 |
主机已停机。 |
|
EHOSTUNREACH |
81 |
242 |
148 |
148 |
113 |
没有到达主机的可用路由。 |
--------------------------------------------------------------------------------
对于 OS/2 环境中的 TCP/IP 用户,下面的列表显示了最常见的 errno。它不是完整的错误列表。可以在文件 nerrno.h 中找到 Errno。此文件是 TCP/IP 产品包含文件的一部分。若尚未安装这些文件,则在您的系统上可能不会出现。errno 号码本身是用括号括起来的。
|
SOCEINTR (10003):系统调用被中断。 |
|
SOCEMFILE (10024):打开的文件太多。 |
|
SOCEPIPE (10032):管道被断开。 |
|
EADDRINUSE (10048):已经在使用指定的地址。 |
|
ENETDOWN (10050):网络已停止。 |
|
ENETUNREACH (10051):没有到达网络的可用路由。 |
|
ENETRESET (10052):重设时网络已卸下了连接。 |
|
SOCECONNABORTED (10053):软件导致连接异常中止。 |
|
ECONNRESET (10054):伙伴已重设了连接。 |
|
ENOBUFS (10055):无缓冲区空间可用。 |
|
ENOTCONN (10057):未连接套接字。 |
|
ETIMEDOUT (10060): 在进行连接之前,建立连接超时。 |
|
ECONNREFUSED (10061):连接已被拒绝。若您正在尝试与数据库相连,则检查是否已成功启动了服务器上的数据库管理程序和 TCP/IP 协议支持。 |
|
若使用 SOCKS 协议支持,则还要确保在 SOCKS 服务器上已成功启动了 TCP/IP 协议支持。 |
|
EHOSTDOWN (10064):主机已停机。 |
|
EHOSTUNREACH (10065):没有到达主机的可用路由。 |
|
SOCEOS2ERR (10100):OS/2 错误。 |
|
有关 OS/2 TCP/IP 通信错误的详情,参考 OS/2 TCP/IP 文档。 |
--------------------------------------------------------------------------------
对于 Windows 95、Windows 98 或 Windows NT 下的 TCP/IP 或 IPX/SPX 用户,下面的列表显示了最常见的错误码。它不是完整的错误列表。可以在文件 winsock.h 中找到由 WSAGetLastError() 返回的错误。
|
WSAEINVAL (10022):若在函数 WSASTARTUP 上接收到此错误,则此 DLL 不支持应用程序所支持的 Windows Sockets 版本。 |
|
WSAEMFILE (10024):没有可用的文件描述符。 |
|
WSAEWOULDBLOCK (10035):套接字标记为未分块,而操作将分块。 |
|
WSAEINPROGRESS (10036):正在进行分块 Windows Sockets 操作。 |
|
WSAENOPROTOOPT (10042):该选项是未知的或不受支持的。 |
|
WSAEADDRINUSE (10048):已经在使用指定的地址。 |
|
WSAENETDOWN (10050):网络子系统已失败。 |
|
WSAENETUNREACH (10051):此时不能从此主机到达网络。 |
|
WSAENETRESET (10052):由于重设了远程主机,所以连接已断开。 |
|
WSAECONNABORTED (10053):由于超时或其他故障,导致虚拟电路异常中止。重设时网络已卸下了连接。 |
|
WSAECONNRESET (10054):伙伴已重设了连接。 |
|
WSAENOBUFS (10055):无缓冲区空间可用,连接太多。 |
|
WSAENOTCONN (10057):未连接套接字。 |
|
WSAETIMEDOUT (10060):在进行连接之前,建立连接超时。 |
|
WSAECONNREFUSED (10061):连接已被拒绝。若您正在尝试与数据库相连,则检查在服务器上是否已成功启动了数据库管理程序和 TCP/IP 协议支持。 |
|
WSAEHOSTUNREACH (10065):此时不能从此主机到达网络。 |
|
WSASYSNOTREADY (10091):基础网络子系统未准备好进行网络通信。 |
|
WSAVERNOTSUPPORTED (10092):此特定的 Windows Sockets 实现未提供请求的 Windows Sockets API 支持的版本。 |
|
WSAHOST_NOT_FOUND (11001):找不到主机。 |
|
WSATRY_AGAIN (11002):找不到主机。请求从名称服务器中检索主机名的 IP 地址失败。 |
|
WSANO_DATA (11004):名称无效,没有请求的类型的数据记录。名称服务器或 hosts 文件不识别主机名,或者在 services 文件中未指定服务名。 |
|
有关 Windows 下的 TCP/IP 通信错误的详情,参考 Windows Sockets 文档。 |