日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Windows Sockets错误标识及对应解释

發布時間:2025/3/20 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Windows Sockets错误标识及对应解释 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
WSAETIMEDOUT 對應 linux 的 ETIMEDOUT

WSAETIMEDOUT 對應 linux 的 ETIMEDOUT

?

IdWinsock2.pas 文件中也有說明.

?

Windows Sockets錯誤代碼??

2010-08-03 17:23:29下面以表格的形式列出了WSAGetLastError()函數有可能返回的錯誤代碼和對應的解釋。錯誤代碼的數值對于所有的Windows Sockets兼容實現都是一致的。?

錯誤代碼Berkeley對應代碼錯誤數值說明
WSAEINTREINT10004函數調用中斷。該錯誤表明由于對WSACancelBlockingCall的調用,造成了一次調用被強行中斷。
WSAEBADFEBADF10009文件句柄錯誤。該錯誤表明提供的文件句柄無效。
WSAEACCESEACCES10013權限被拒。嘗試進行操作,但被禁止。若試圖在sendto或WSASendTo中使用一個廣播地址,但是尚未用setsockopt和SO_BROADCAST這兩個選項設置廣播權限,便會產生這類錯誤。
WSAEFAULTEFAULT10014地址無效。傳給Winsock函數的指針地址無效。若指定的緩沖區太小,也會產生這個錯誤。
WSAEINVALEINVAL10022參數無效。指定了一個無效參數。例如,假如為WSAIoctl調用指定了一個無效控制代碼,便會產生這個錯誤。另外,它也可能表明當前的狀態有錯,例如在一個目前沒有監聽的調用accept或WSAAccept。
WSAEMFILE BLOCKEMFILE BLOCK10024打開文件過多。提示打開的太多了。通常,Microsoft提供者只受到系統內可用資源數量的限制。
WSAEINPROEINPRO10036資源暫時不可用。對鎖定來說,如果請求操作不能立即執行的話,通常會返回這個錯誤。比如說,在一個暫停調用conn ect,就會返回這個錯誤。因為連接請求不能立即執行。
GRESSGRESS????操作正在進行中。當前正在執行鎖定操作。一般來說不會出現這個錯誤,除非正在開

發1 6?位Wi n s o c k?應用程序。

WSAEALREADYEALREADY?10037操作已完成。一般來說,在鎖定嘗試已處于進程中的操作時,會產生這個錯誤。比如,在一個已處于連接進程的鎖定,再一次調用connect或WSAConnect。另外,服務提供者處于執行回調函數(針對支持回調例程的Winsock函數)的進程中時,也會出現這個錯誤。
WSAENOTSOCKENOTSOCK10038無效操作。任何一個SOCKET句柄當作參數的Winsock函數都會返回這個錯誤。它表明提供的字句柄無效。

?

???續表

錯誤代碼Berkeley對應代碼錯誤數值說明
WSAEDESTADDR REQEDESTADDR REQ10039需要目標地址。這個錯誤表明沒有提供具體地址。比方說,假如在調用sendto時,將目標地址設為INADDR_ANY(任意地址),便會返回這個錯誤。
WSAEMSGSIZEEMSGSIZE10040消息過長。這個錯誤的含義很多。如果在一個數據報發送一條消息,這條消息對內部緩沖區而言太大的話,就會產生這個錯誤。再比如,由于網絡本身的限制,使一條消息過長,也會產生這個錯誤。最后,如果收到數據報之后,緩沖區太小,不能接收消息時,也會產生這個錯誤。
WSAEPROTOTYPEEPROTOTYPE10041協議類型有誤。在socket或WSASocket?調用中指定的協議不支持指定的類型。比如,要求建立SOCK_STREAM類型的一個IP,同時指定協議為IPPROTO_UDP,便會產生這樣的錯誤。
WSAENOPROTO OPTENOPROTOOPT10042協議選項錯誤。表明在getsockopt或setsockopt?調用中,指定的選項或級別不明、未獲支持或者無效。
WSAEPROTONOUPPORTEPROTONO SUPPORT10043不支持的協議。系統中沒有安裝請求的協議或沒有相應的實施方案。比如,如果系統中沒有安裝TCP/IP,而試著建立TCP或UDP時,就會產生這個錯誤。
WSAESOCKTNO SUPPORTESOCKTNO SUPPORT10044不支持的類型。對指定的地址家族來說,沒有相應的具體類型支持。比如,在向一個不支持原始的協議請求建立一個SOCK_RAW類型時,就會產生這個錯誤。
WSAEOPNOTSUPPORTEOPNOT SUPPORT10045不支持的操作。表明針對指定的對象,試圖采取的操作未獲支持。通常,如果試著在一個不支持調用Winsock函數的調用了Winsock時,就會產生這個錯誤。
WSAEPFNOSUPPORTEPFNO SUPPORT10046不支持的協議家族。請求的協議家族不存在,或系統內尚未安裝。多數情況下,這個錯誤可與WSAEAFNOSUPPORT互換(兩者等價);后者出現得更為頻繁。
WSAEAFNOSUPPORTEAFNO SUPPORT10047地址家族不支持請求的操作。對類型不支持的操作來說,在試著執行它時,就會出現這個錯誤。比如,在類型為SOCK_STREAM的一個調用sendto或WSASendTo函數時,就會產生這個錯誤。另外,在調用socket或WSASocket函數的時候,若同時請求了一個無效的地址家族、類型及協議組合,也會產生這個錯誤。

?

???續表

錯誤代碼Berkeley對應代碼錯誤數值說明
WSAEADDRINUSEEADDRINUSE10048地址正在使用。正常情況下,每個只允許使用一個地址這個錯誤一般和bind、connect和WSAConnect這三個函數有關。可在setsockopt函數中設置選項SO_REUSEA D D R?,允許多個訪問同一個本地I P?地址及端口號
WSAEADDRNOT AVAILEADDRNOT AVAIL10049不能分配請求的地址。API調用中指定的地址對那個函數來說無效時,就會產生這樣的錯誤。例如,若在bind調用中指定一個IP地址,但卻沒有對應的本地IP接口,便會產生這樣的錯誤。另外,通過connect、WSAConnect、sendto、WSASendTo和WSAJoinLeaf這四個函數為準備連接的遠程計算機指定端口0時,也會產生這樣的錯誤。
WSAENETDOWNENETDOWN10050網絡斷開。試圖采取一項操作時,卻發現網絡連接中斷。這可能是由于網絡堆棧的錯誤,網絡接口的故障,或者本地網絡的問題造成的。
WSAENETUNREACHENETUNREAC H10051網絡不可抵達。試圖采取一項操作時,卻發現目標網絡不可抵達(不可訪問)。這意味著本地主機不知道如何抵達一個遠程主機。換言之,目前沒有已知的路由可抵達那個目標主機。
WSAENETRESETENETRESET10052網絡重設時斷開了連接。由于“保持活動”操作檢測到一個錯誤,造成網絡連接的中斷。若在一個已經無效的連接之,通過setsockopt函數設置SO_KEEPALIVE選項,也會出現這樣的錯誤。
WSAECONNABORT EDECONNABORTED10053軟件造成連接取消。由于軟件錯誤,造成一個已經建立的連接被取消。典型情況下,這意味著連接是由于協議或超時錯誤而被取消的。
WSAECONNRESETECONNRESET??10054連接被對方重設。一個已經建立的連接被遠程主機強行關閉。若遠程主機的進程異常中止運行(由于內存沖突或硬件故障),或者針對執行了一次強行關閉,便會產生這樣的錯誤。針對強行關閉的情況,可用SO_LINGER選項和setsockopt來配置一個
WSAENOBUFSENOBUFS10055沒有緩沖區空間。由于系統缺少足夠的緩沖區空間,請求的操作不能執行。
WSAEISCONNEISCONN10056已經連接。表明在一個已建立連接的,試圖再建立一個連接。要注意的是,數據報和數據流均有可能出現這樣的錯誤。使用數據報時,假如事先已通過connect或WSAConnect調用,為數據報通信關聯了一個端點的地址,那么以后試圖再次調用sendto或WSASendTo,便會產生這樣的錯誤。
WSAENOTCONNENOTCONN10057尚未連接。若在一個尚未建立連接的“面向連接”發出數據收發請求,便會產生這樣的錯誤。

?

???續表

錯誤代碼Berkeley對應代碼錯誤數值說明
WSAESHUTDOWNESHUTDOWN10058關閉后不能發送。表明已通過對shutdown的一次調用,部分關閉了,但后又請求進行數據的收發操作。要注意的是,這種錯誤只會在已經關閉的那個數據流動方向才會發生。舉個例子來說,完成數據發送后,若調用shutdown,那么以后任何數據發送調用都會產生這樣的錯誤。
WSAETIMEDOUTETIMEDOUT10060連接超時。若發出了一個連接請求,但經過規定的時間,遠程計算機仍未作出正確的響應(或根本沒有任何響應),便會發生這樣的錯誤。要想收到這樣的錯誤,通常需要先在設置好SO_SNDTIMEO和SO_RCVTIMEO選項,然后調用connect及WSAConnect函數。
WSAECONNREFUS EDECONNREFUSED10061連接被拒。由于被目標機器拒絕,連接無法建立。這通常是由于在遠程機器,沒有任何應用程序可在那個地址之,為連接提供服務。
WSAEHOSTDOWNEHOSTDOWN10064主機關閉。這個錯誤指出由于目標主機關閉,造成操作失敗。然而,應用程序此時更有可能收到的是一條WSAETIMEDOUT(連接超時)錯誤,因為對方關機的情況通常是在試圖建立一個連接的時候發生的。
WSAEHOSTUNREA CHEHOSTUNREACH10065沒有到主機的路由。應用程序試圖訪問一個不可抵達的主機。該錯誤類似于WSAENETUNREACH。
WSASYSNOTREA Y?10091網絡子系統不可用。調用WSAStartup時,若提供者不能正常工作(由于提供服務的基層系統不可用),便會返回這種錯誤。
WSAVERNOTSUPP ORTED?10092Winsock. dll版本有誤。表明不支持請求的Winsock提供者版本。
WSANOTINITIAL ISED?10093Winsock尚未初始化。尚未成功完成對WSAStartup的一次調用。
值對于所有的Windows Sockets兼容實現都是一致的。

?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一致
?WSAECONNREFUSEDECONNREFUSED?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错误标识及对应解释的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。