Windows Sockets错误标识及对应解释
WSAETIMEDOUT 对应 linux 的 ETIMEDOUT
IdWinsock2.pas 文件中也有说明.
Windows Sockets错误代码
2010-08-03 17:23:29下面以表格的形式列出了WSAGetLastError()函数有可能返回的错误代码和对应的解释。错误代码的数值对于所有的Windows Sockets兼容实现都是一致的。
错误代码 | Berkeley对应代码 | 错误数值 | 说明 |
WSAEINTR | EINT | 10004 | 函数调用中断。该错误表明由于对WSACancelBlockingCall的调用,造成了一次调用被强行中断。 |
WSAEBADF | EBADF | 10009 | 文件句柄错误。该错误表明提供的文件句柄无效。 |
WSAEACCES | EACCES | 10013 | 权限被拒。尝试对套接字进行操作,但被禁止。若试图在sendto或WSASendTo中使用一个广播地址,但是尚未用setsockopt和SO_BROADCAST这两个选项设置广播权限,便会产生这类错误。 |
WSAEFAULT | EFAULT | 10014 | 地址无效。传给Winsock函数的指针地址无效。若指定的缓冲区太小,也会产生这个错误。 |
WSAEINVAL | EINVAL | 10022 | 参数无效。指定了一个无效参数。例如,假如为WSAIoctl调用指定了一个无效控制代码,便会产生这个错误。另外,它也可能表明套接字当前的状态有错,例如在一个目前没有监听的套接字上调用accept或WSAAccept。 |
WSAEMFILE BLOCK | EMFILE BLOCK | 10024 | 打开文件过多。提示打开的套接字太多了。通常,Microsoft提供者只受到系统内可用资源数量的限制。 |
WSAEINPRO | EINPRO | 10036 | 资源暂时不可用。对非锁定套接字来说,如果请求操作不能立即执行的话,通常会返回这个错误。比如说,在一个非暂停套接字上调用conn ect,就会返回这个错误。因为连接请求不能立即执行。 |
GRESS | GRESS | 操作正在进行中。当前正在执行非锁定操作。一般来说不会出现这个错误,除非正在开
发1 6 位Wi n s o c k 应用程序。 |
|
WSAEALREADY | EALREADY | 10037 | 操作已完成。一般来说,在非锁定套接字上尝试已处于进程中的操作时,会产生这个错误。比如,在一个已处于连接进程的非锁定套接字上,再一次调用connect或WSAConnect。另外,服务提供者处于执行回调函数(针对支持回调例程的Winsock函数)的进程中时,也会出现这个错误。 |
WSAENOTSOCK | ENOTSOCK | 10038 | 无效套接字上的套接字操作。任何一个把SOCKET句柄当作参数的Winsock函数都会返回这个错误。它表明提供的套接字句柄无效。 |
续表
错误代码 | Berkeley对应代码 | 错误数值 | 说明 |
WSAEDESTADDR REQ | EDESTADDR REQ | 10039 | 需要目标地址。这个错误表明没有提供具体地址。比方说,假如在调用sendto时,将目标地址设为INADDR_ANY(任意地址),便会返回这个错误。 |
WSAEMSGSIZE | EMSGSIZE | 10040 | 消息过长。这个错误的含义很多。如果在一个数据报套接字上发送一条消息,这条消息对内部缓冲区而言太大的话,就会产生这个错误。再比如,由于网络本身的限制,使一条消息过长,也会产生这个错误。最后,如果收到数据报之后,缓冲区太小,不能接收消息时,也会产生这个错误。 |
WSAEPROTOTYPE | EPROTOTYPE | 10041 | 套接字协议类型有误。在socket或WSASocket 调用中指定的协议不支持指定的套接字类型。比如,要求建立SOCK_STREAM类型的一个IP套接字,同时指定协议为IPPROTO_UDP,便会产生这样的错误。 |
WSAENOPROTO OPT | ENOPROTOOPT | 10042 | 协议选项错误。表明在getsockopt或setsockopt 调用中,指定的套接字选项或级别不明、未获支持或者无效。 |
WSAEPROTONOUPPORT | EPROTONO SUPPORT | 10043 | 不支持的协议。系统中没有安装请求的协议或没有相应的实施方案。比如,如果系统中没有安装TCP/IP,而试着建立TCP或UDP套接字时,就会产生这个错误。 |
WSAESOCKTNO SUPPORT | ESOCKTNO SUPPORT | 10044 | 不支持的套接字类型。对指定的地址家族来说,没有相应的具体套接字类型支持。比如,在向一个不支持原始套接字的协议请求建立一个SOCK_RAW套接字类型时,就会产生这个错误。 |
WSAEOPNOTSUPPORT | EOPNOT SUPPORT | 10045 | 不支持的操作。表明针对指定的对象,试图采取的操作未获支持。通常,如果试着在一个不支持调用Winsock函数的套接字上调用了Winsock时,就会产生这个错误。 |
WSAEPFNOSUPPORT | EPFNO SUPPORT | 10046 | 不支持的协议家族。请求的协议家族不存在,或系统内尚未安装。多数情况下,这个错误可与WSAEAFNOSUPPORT互换(两者等价);后者出现得更为频繁。 |
WSAEAFNOSUPPORT | EAFNO SUPPORT | 10047 | 地址家族不支持请求的操作。对套接字类型不支持的操作来说,在试着执行它时,就会出现这个错误。比如,在类型为SOCK_STREAM的一个套接字上调用sendto或WSASendTo函数时,就会产生这个错误。另外,在调用socket或WSASocket函数的时候,若同时请求了一个无效的地址家族、套接字类型及协议组合,也会产生这个错误。 |
续表
错误代码 | Berkeley对应代码 | 错误数值 | 说明 |
WSAEADDRINUSE | EADDRINUSE | 10048 | 地址正在使用。正常情况下,每个套接字只允许使用一个套接字地址这个错误一般和bind、connect和WSAConnect这三个函数有关。可在setsockopt函数中设置套接字选项SO_REUSEA D D R ,允许多个套接字访问同一个本地I P 地址及端口号 |
WSAEADDRNOT AVAIL | EADDRNOT AVAIL | 10049 | 不能分配请求的地址。API调用中指定的地址对那个函数来说无效时,就会产生这样的错误。例如,若在bind调用中指定一个IP地址,但却没有对应的本地IP接口,便会产生这样的错误。另外,通过connect、WSAConnect、sendto、WSASendTo和WSAJoinLeaf这四个函数为准备连接的远程计算机指定端口0时,也会产生这样的错误。 |
WSAENETDOWN | ENETDOWN | 10050 | 网络断开。试图采取一项操作时,却发现网络连接中断。这可能是由于网络堆栈的错误,网络接口的故障,或者本地网络的问题造成的。 |
WSAENETUNREACH | ENETUNREAC H | 10051 | 网络不可抵达。试图采取一项操作时,却发现目标网络不可抵达(不可访问)。这意味着本地主机不知道如何抵达一个远程主机。换言之,目前没有已知的路由可抵达那个目标主机。 |
WSAENETRESET | ENETRESET | 10052 | 网络重设时断开了连接。由于“保持活动”操作检测到一个错误,造成网络连接的中断。若在一个已经无效的连接之上,通过setsockopt函数设置SO_KEEPALIVE选项,也会出现这样的错误。 |
WSAECONNABORT ED | ECONNABORTED | 10053 | 软件造成连接取消。由于软件错误,造成一个已经建立的连接被取消。典型情况下,这意味着连接是由于协议或超时错误而被取消的。 |
WSAECONNRESET | ECONNRESET | 10054 | 连接被对方重设。一个已经建立的连接被远程主机强行关闭。若远程主机上的进程异常中止运行(由于内存冲突或硬件故障),或者针对套接字执行了一次强行关闭,便会产生这样的错误。针对强行关闭的情况,可用SO_LINGER套接字选项和setsockopt来配置一个套接字 |
WSAENOBUFS | ENOBUFS | 10055 | 没有缓冲区空间。由于系统缺少足够的缓冲区空间,请求的操作不能执行。 |
WSAEISCONN | EISCONN | 10056 | 套接字已经连接。表明在一个已建立连接的套接字上,试图再建立一个连接。要注意的是,数据报和数据流套接字均有可能出现这样的错误。使用数据报套接字时,假如事先已通过connect或WSAConnect调用,为数据报通信关联了一个端点的地址,那么以后试图再次调用sendto或WSASendTo,便会产生这样的错误。 |
WSAENOTCONN | ENOTCONN | 10057 | 套接字尚未连接。若在一个尚未建立连接的“面向连接”套接字上发出数据收发请求,便会产生这样的错误。 |
续表
错误代码 | Berkeley对应代码 | 错误数值 | 说明 |
WSAESHUTDOWN | ESHUTDOWN | 10058 | 套接字关闭后不能发送。表明已通过对shutdown的一次调用,部分关闭了套接字,但后又请求进行数据的收发操作。要注意的是,这种错误只会在已经关闭的那个数据流动方向上才会发生。举个例子来说,完成数据发送后,若调用shutdown,那么以后任何数据发送调用都会产生这样的错误。 |
WSAETIMEDOUT | ETIMEDOUT | 10060 | 连接超时。若发出了一个连接请求,但经过规定的时间,远程计算机仍未作出正确的响应(或根本没有任何响应),便会发生这样的错误。要想收到这样的错误,通常需要先在套接字上设置好SO_SNDTIMEO和SO_RCVTIMEO选项,然后调用connect及WSAConnect函数。 |
WSAECONNREFUS ED | ECONNREFUSED | 10061 | 连接被拒。由于被目标机器拒绝,连接无法建立。这通常是由于在远程机器上,没有任何应用程序可在那个地址之上,为连接提供服务。 |
WSAEHOSTDOWN | EHOSTDOWN | 10064 | 主机关闭。这个错误指出由于目标主机关闭,造成操作失败。然而,应用程序此时更有可能收到的是一条WSAETIMEDOUT(连接超时)错误,因为对方关机的情况通常是在试图建立一个连接的时候发生的。 |
WSAEHOSTUNREA CH | EHOSTUNREACH | 10065 | 没有到主机的路由。应用程序试图访问一个不可抵达的主机。该错误类似于WSAENETUNREACH。 |
WSASYSNOTREA Y | 10091 | 网络子系统不可用。调用WSAStartup时,若提供者不能正常工作(由于提供服务的基层系统不可用),便会返回这种错误。 | |
WSAVERNOTSUPP ORTED | 10092 | Winsock. dll版本有误。表明不支持请求的Winsock提供者版本。 | |
WSANOTINITIAL ISED | 10093 | Winsock尚未初始化。尚未成功完成对WSAStartup的一次调用。 |
Windows Sockets 代码 |
Berkele y对应代码 |
错误数值 | 解释 |
WSAEINTR | EINTR | 10004 | 与标准C一致 |
WSAEBADF | EBADF | 10009 | 与标准C一致 |
WSAEACCES | EACCES | 10013 | 与标准C一致 |
WSAEFAULT | EFAULT | 10014 | 与标准C一致 |
WSAEINVAL | EINVAL | 10022 | 与标准C一致 |
WSAEMFILE | EMFILE | 10024 | 与标准C一致 |
WSAEWOULD BLOCK | EWOULD BLOCK | 10035 | 与BSD一致 |
WSAEINPRO GRESS | EINPRO GRESS | 10036 | 当应用程序调用Windows Sockets API函数时,如果一个阻塞函数正在运行,将返回该错误。 |
WSAEALREADY | EALREADY | 10037 | 与BSD一致 |
WSAENOTSOCK | ENOTSOCK | 10038 | 与BSD一致 |
WSAEDESTADDR REQ | EDESTADDR REQ | 10039 | 与BSD一致 |
WSAEMSGSIZE | EMSGSIZE | 10040 | 与BSD一致 |
WSAEPROTOTYPE | EPROTOTYPE | 10041 | 与BSD一致 |
WSAENOPROTO OPT | ENOPROTOOPT | 10042 | 与BSD一致 |
WSAEPROTONO SUPPORT | EPROTONO SUPPORT | 10043 | 与BSD一致 |
WSAESOCKTNO SUPPORT | ESOCKTNO SUPPORT | 10044 | 与BSD一致 |
WSAEOPNOT SUPPORT | EOPNOT SUPPORT | 10045 | 与BSD一致 |
WSAEPFNO SUPPORT | EPFNO SUPPORT | 10046 | 与BSD一致 |
WSAEAFNO SUPPORT | EAFNO SUPPORT | 10047 | 与BSD一致 |
WSAEADDRINUSE | EADDRINUSE | 10048 | 与BSD一致 |
WSAEADDRNOT AVAIL | EADDRNOT AVAIL | 10049 | 与BSD一致 |
WSAENETDOWN | ENETDOWN | 10050 | 与BSD一致, 在Windows Sockets检测到任何底层的失败时,都有可能返回该错误。 |
WSAENETUNREACH | ENETUNREACH | 10051 | 与BSD一致 |
WSAENETRESET | ENETRESET | 10052 | 与BSD一致 |
WSAECONNABORTED | ECONNABORTED | 10053 | 与BSD一致 |
WSAECONNRESET | ECONNRESET | 10054 | 与BSD一致 |
WSAENOBUFS | ENOBUFS | 10055 | 与BSD一致 |
WSAEISCONN | EISCONN | 10056 | 与BSD一致 |
WSAENOTCONN | ENOTCONN | 10057 | 与BSD一致 |
WSAESHUTDOWN | ESHUTDOWN | 10058 | 与BSD一致 |
WSAETOOMANYREFS | ETOOMANYREFS | 10059 | 与BSD一致 |
WSAETIMEDOUT | ETIMEDOUT | 10060 | 与BSD一致 |
WSAECONNREFUSED | ECONNREFUSED | 10061 | 与BSD一致 |
WSAELOOP | ELOOP | 10062 | 与BSD一致 |
WSAENAMETOOLONG | ENAMETOOLONG | 10063 | 与BSD一致 |
WSAEHOSTDOWN | EHOSTDOWN | 10064 | 与BSD一致 |
WSAEHOSTUNREACH | EHOSTUNREACH | 10065 | 与BSD一致 |
WSASYSNOTREAD | 10091 | 由WSAStartup()函数返回,表明底层的网络子系统无法使用。 | |
WSAVERNOTSUPPORTED | 10092 | 由WSAStartup()函数返回,表明Windows Sockets DLL不支持这一应用。 | |
WSANOTINITIALISED | 10093 | 由除了WSAStartup()的其他函数返回,表明没有对WSAStartup()函数的成功调用。 | |
WSAHOST_NOT_FOUND | HOST_NOT_FOUND | 11001 | 与BSD一致 |
WSATRY_AGAIN | TRY_AGAIN | 11001 | 与BSD一致 |
WSANO_RECOVERY | NO_RECOVERY | 11003 | 与BSD一致 |
WSANO_DATA | NO_DATA | 11004 | 与BSD一致 |
1,http://blog.163.com/aragorn_1024/blog/static/12606592720107352329908/
2,http://www.cnblogs.com/-clq/archive/2012/06/14/2549195.html
Windows Sockets错误标识及对应解释的更多相关文章
- C# Windows Sockets (Winsock) 接口 (转)
在.Net中,System.Net.Sockets 命名空间为需要严密控制网络访问的开发人员提供了 Windows Sockets (Winsock) 接口的托管实现.System.Net 命名空间中 ...
- ava.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind (解决思路)
当我们在启动tomcat服务的时候报错信息:java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bin 分析:从错 ...
- Loadrunner 脚本开发-利用loadrunner开发Windows Sockets协议脚本
脚本开发-利用loadrunner开发Windows Sockets协议脚本 by:授客 QQ:1033553122 欢迎加入软件性能测试交流QQ群:7156436 实践举例 Socket服务端简单实 ...
- 【Tomcat】Unrecognized Windows Sockets error: 10106: Socket creation failed
tomcat8启动过程中报如下错误 -Nov- ::]: java.net.SocketException: Unrecognized Windows Sockets error: : create ...
- java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind 【 解决方案】
当我们在启动tomcat服务的时候报错信息:java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bin 分析:从错 ...
- 联不上网 Unable to initialize Windows Sockets interface. General failure.
电脑莫名联不上网 Unable to initialize Windows Sockets interface. General failure. Unable to initialize the W ...
- Unrecognized Windows Sockets error: 0: JVM_Bind 异常怎么办
Unrecognized Windows Sockets error: 0: JVM_Bind 异常解决办法 java.net.SocketException: Unrecognized Window ...
- Unrecognized Windows Sockets error: 0: JVM_Bind
Unrecognized Windows Sockets error: 0: JVM_Bind [转帖]今天很是奇怪,在运行服务器端的时候,经常遇到这个异常: java.net.SocketExcep ...
- Windows Sockets Error Codes
https://msdn.microsoft.com/en-us/library/windows/desktop/ms740668(v=vs.85).aspx Most Windows Sockets ...
随机推荐
- GPS精度因子(GDOP,PDOP,HDOP,VDOP,TDOP)
PDOP:位置精度因子(Position Dilution of Precision),直译为“精度强弱度”,通常翻译为“相对误差”.具体含义是:由于观测成果的好坏与被测量的人造卫星和接收仪间的几何形 ...
- Swift语言从天而降,是否能掀起新一轮的科技革命?
Swift语言从天而降,是否能掀起新一轮的科技革命? Swift语言诞生到如今,才短短一个月多,Swift居然挤进TIOBE排行榜的第16位,相信这发展的速度绝不是不论什么一个语言可与之相提并论,那S ...
- sort命令的使用,结合uniq, awk等
这条命令的意思:lastb | awk -F " " '{print $3}' | sort | uniq -c | sort -k1,1nr > output.log 过滤 ...
- OpenGL ES 3.0之Texturing纹理详解(二)
Texture Filtering and Mipmapping 纹理过滤与多级纹理 前面我们已经讲了单个2D图像的2D纹理的介绍,这篇文章主要讲解多级纹理.纹理坐标是用于生成一个2D索引,当放大和缩 ...
- WIN7系统开题提示loli.vbs 操作超时怎么办
这个是魔兽争霸的一个病毒,但是该病毒没有任何危害性,只是作为检测进入房间的地图是否含有作弊脚本,主动提供了清除工具 搜索loli,删除所有bat和exe,vbs文件 如果魔兽争霸3安装目录存在 ...
- FIS.js前端开发的使用说明文档
文档结构 什么是FIS 部署FIS FIS基本使用 模块定义 加载方式 调用Tangram 2.0 一.什么是FIS FIS提供了一套贯穿开发流程的开发体系和集成开发环境,为产品线提供前端开发底层架构 ...
- 关于testNG和JUnit的对比
关于选择JUnit还是选testNG,这几篇文章,建议读一读: API参考文档: Junit API文档:http://junit.org/junit4/javadoc/latest/index.ht ...
- JAVA设计模式——第 2 章 代理模式【Proxy Pattern】(转)
什么是代理模式呢?我很忙,忙的没空理你,那你要找我呢就先找我的代理人吧,那代理人总要知道被代理人能做哪些事情不能做哪些事情吧,那就是两个人具备同一个接口,代理人虽然不能干活,但是被代理的人能干活呀. ...
- WIP 004 - Quote/Policy Search
Please create the search form Auto complete for first name and last name Related tables System_LOBs ...
- python——从datetime模块探索python的数据架构
问题出现于我试图向自建网页中加入实时时间开始. 我之前已经知道python中有有关事件和日期的模块datetime.以下导入datetime并作实验. >>> import date ...