Windows Sockets錯誤碼

youhello發表於2007-12-14
Windows Sockets在標頭檔案winsock.h中定義了所有的錯誤碼,它們包括以“WSA”打頭的Windows Sockets實現返回的錯誤碼和Berkeley Sockets定義的錯誤碼全集。定義Berkeley Sockets錯誤碼是為了確保原有軟體的可移植性。[@more@]Windows Sockets錯誤碼列表

A.1列出了WSAGetLastError()函式返回的可能錯誤碼和它們的解釋,它們可分為四個部分。

錯誤碼的第一部分是用來解決在不同的C編譯中對標準C錯誤碼的不一致的定義。錯誤碼的第二部分是標準Berkeley Sockets錯誤碼的Windows Sockets版本。錯誤碼的第三部分包括特定Windows Sockets擴充的錯誤碼。錯誤碼的第四部分由Windows SocketsgetXbyY()WSAAsyncGetXByY()函式返回, Berkeley軟體中由變數h_errno返回的錯誤(事實上,Windows Sockets在標頭檔案winsock.h中已將h_error定義成其值為WSAGetLastError()的一個宏),它們相當於由域名服務(Domain Name Service)返回的各種失敗。如果Windows Sockets實現沒有使用域名服務,它將使用最合適的程式碼。一般地,Windows Sockets應用程式應該將錯誤WSAHOST_NOT_FOUNDWSANO_DATA解釋為指示關鍵字(名字,地址等)沒有找著,而錯誤WSATRY_AGAINWSANO_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

EPFNOSUPPORT

10046

BSD

WSAEAFNOSUPPORT

EAFNOSUPPORT

10047

BSD

WSAEADDRINUSE

EADDRINUSE

10048

BSD

WSAEADDRNOTAVAIL

EADDRNOTAVAIL

10049

BSD

WSAEDOWN

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

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/79126/viewspace-993563/,如需轉載,請註明出處,否則將追究法律責任。

Windows Sockets錯誤碼
請登入後發表評論 登入
全部評論

相關文章