socket套接字錯誤代碼詳解

本文描述了可能錯誤代碼, 是由 WSAGetLastError (Wsapiref_2tiq.asp) 函數返回。按字母順序列出錯誤由錯誤宏。 從任何函數不返回 Winsock2.h 中定義一些錯誤代碼。 本文中不包含這些錯誤代碼。
做網絡編程被報錯而真心蛋疼的孩子們有救了。

更多信息
WSAEINTR (10004) 
* 轉換 : 中斷函數調用。
* 說明 : 阻塞操作中斷由對 WSACancelBlockingCall (Wsapiref_704y.asp) 調用。

WSAEACCES (10013) 
* 轉換 : 拒絕權限。
* 說明 : 一個試圖訪問以某種方式是通過其訪問權限禁止, 套接字。 例如, 當廣播地址用於 sendto 但不是通過 setsockopt(SO_BROADCAST) 設置廣播權限發生此錯誤。 對於 WSAEACCES 錯誤其他可能原因是當綁定(Wsapiref_6vzm.asp) 函數被調用 ()), 中 Microsoft Windows NT 4 其他程序、服務或內核模式驅動程序與定同一地址具有獨佔訪問中 Microsoft Windows NT 4 綁定到同一地址具有獨佔訪問其他程序、服務或內核模式驅動程序 .0 Service Pack 4 SP [ 4 ] 或更高版本 .0 Service Pack 4 SP [ 4 ] 或更高版本 (。 這樣獨佔訪問是新功能和 Windows NT 4.0 SP 4 以後, 並通過使用 SO_EXCLUSIVEADDRUSE 選項是實現它。

WSAEFAULT (10014) 
* 轉換 : 錯誤地址。
* 說明 : 當它嘗試使用指針參數調用系統檢測到無效指針地址。 如果程序傳遞了無效指針值或者太小的緩衝區長度是該錯誤。 例如, 的參數是 SOCKADDR 結構的長度小於 sizeof(SOCKADDR) 值是否發生此問題。

WSAEINVAL (10022) 
* 翻譯 : 無效參數。
* 說明 : 對 setsockopt (Wsapiref_94aa.asp) 函數提供一個無效參數指定了無效層 (例如, 一個參數)。 有時, 它也指向當前狀態的套接字, 例如, 調用接受 (Wsapiref_13aq.asp) 套接字,沒有偵聽上。

WSAEMFILE (10024) 
* 轉換 : 打開文件太多。
* 說明 : 有太多套接字打開。 每實現可能具有的可用插槽處理大數。 這些句柄可能提供每進程, 全球, 或每線程。

WSAEWOULDBLOCK (10035) 
* 轉換 : 資源暫時不可用。
* 說明 : 從無法完成立即, 例如, nonblocking 套上操作接收 (Wsapiref_2i9e.asp), 是要從插槽讀取排隊沒有數據時返回此錯誤。 它是非致命錯誤, 以後可重試操作。 WSAEWOULDBLOCK 通常報告如由於一些時間爲要建立該連接必須經過的調用結果連接到 nonblocking SOCK_STREAM 插座 (Wsapiref_8m7m.asp)。

WSAEINPROGRESS (10036) 
* 轉換 : 操作現在正在。
* 說明 : 阻塞操作正在運行。 WindowsSockets 只允許單個阻塞操作對於每項任務或者對於每個線程將完成。 如果(無論它引用或任何其他插槽) 進行任何其他函數調用, 功能失敗, WSAEINPROGRESS 錯誤。

WSAEALREADY (10037) 
* 轉換 : 操作正在進行。
* 說明 : nonblocking 套接字上一個操作是當操作已經正在重。 例如, 調用連 (Wsapiref_8m7m.asp) 是嘗試第二次 nonblocking 正已連接, 在套接字上或異步請求 (WSAAsyncGetXbyY) 是嘗試已被取消或完成。

WSAENOTSOCK (10038) 
* 轉換 : Socket nonsocket 上操作。
* 說明 : 找東西是不套接字上嘗試一個操作。 插槽柄參數是否未引用有效插座, 或用於選擇 (Wsapiref_1ab6.asp), 屬於一個 fd_set 已無效。

WSAEDESTADDRREQ (10039) 
* 轉換 : 需要目標地址。
* 說明 : 從套接字上操作需要地址被省略。 例如, 如果 sendto (Wsapiref_4sqa.asp) 與遠程地址是 ADDR_ANY 調用會返回此錯誤。

WSAEMSGSIZE (10040) 
* 轉換 : 消息太長。
* 說明 : 緩衝區用來接收數據報是小於數據報本身或大於內部消息緩衝區或某些其他網絡限制, A 是報套接字上發送郵件。

WSAEPROTOTYPE (10041) 
* 翻譯 : 協議對於套接字錯誤類型。
* 說明 : 插槽 (Wsapiref_2qr6.asp) 函數調用中指定 A 協議不支持語義的插座類型請求。 例如, ARPA Internet UDP 協議能指定與插座類型的 SOCK_STREAM。

WSAENOPROTOOPT (10042) 
* 轉換 : Bad 協議選項。
* 說明 : getsockopt (Wsapiref_8qcy.asp) 調用或 setsockopt (Wsapiref_94aa.asp) 調用中指定一未知、 無效, 或支持選項或級別。

WSAEPROTONOSUPPORT (10043) 
* 翻譯 : 不支持協議。
* 說明 : 請求協議或者系統中尚未配置或沒有實現它存在。 例如, 套接字 (Wsapiref_2qr6.asp) 調用請求 SOCK _ DGRAM 插座, 但它指定流協議。

WSAESOCKTNOSUPPORT (10044) 
* 轉換 : Socket 類型不支持。
* 說明 : 指定插座類型: 支持此地址族中不存在。 套接例如, 可選能插槽 (Wsapiref_2qr6.asp) 調用中選擇類型但實現不支持 SOCK_RAW SOCK_RAW 字根本。

WSAEOPNOTSUPP (10045) 
* 翻譯 : 不支持操作。
* 說明 : 對於對象所引用的類型不支持該操作, 已嘗試。該錯誤通常發生在插座描述符以套接字無法支持此操作嘗試接受連接數據報套接字上。

WSAEPFNOSUPPORT (10046) 
* 翻譯 : 協議系列不支持。
* 說明 : 系統中尚未配置: 協議系列或沒有實現它存在。 此消息有略微不同含義從 WSAEAFNOSUPPORT。 但是, 很頻繁互換。 所有 WindowsSockets 函數返回這些消息之一指定 WSAEAFNOSUPPORT。

WSAEAFNOSUPPORT (10047) 
* 轉換 : 地址家族協議系列不受。
* 說明 : 已使用一個地址與請求協議不兼容。 使用一個關聯地址家族對 Internet 協議 (即, AF_INET) 和通用協議類型 (即, SOCK_STREAM) 創建所有套接字。 如果正確協議明確請求插槽 (Wsapiref_2qr6.asp) 調用中或錯誤系列的地址用於插座, 例如, sendto (Wsapiref_4sqa.asp) 中返回此錯誤。

WSAEADDRINUSE (10048) 
* 轉換 : 地址已在使用中。
* 說明 : 通常, 是允許一個使用的每個套接字地址 (協議 / IP 地址 / 端口)。 如果程序嘗試綁定 (Wsapiref_6vzm.asp) 插座到一個 IP 地址或端口, 對於一個現有插座, 套接字未正確, 關閉,已使用該錯誤發生或套接字程序是仍然在關閉過程中。 對於服務器需要綁定到同一端口號, 多套程序考慮使用 setsockopt (Wsapiref_94aa.asp)(SO_REUSEADDR)。 客戶程序通常不需要調用綁定根本、 連 (Wsapiref_8m7m.asp) 自動選擇未端口。 WSAEADDRINUSE 錯誤綁定與通配符地址 (涉及 ADDR_ANY), 調用時可能會延遲直到達到提交特定地址。 通過調用到另一個函數發生以後, 包括連接、 偵聽、 WSAConnect 或 WSAJoinLeaf 可能會出現此。

WSAEADDRNOTAVAIL (10049) 
* 翻譯 : 無法分配請求地址。
* 說明 : 其上下文中: 請求地址無效。 綁定 (Wsapiref_6vzm.asp) 試圖從此錯誤通常可以到地址爲本地計算機無效。也可能導致此錯誤 sendto (Wsapiref_4sqa.asp), WSAConnect (Wsapiref_8kc2.asp)、 WSAJoinLeaf (Wsapiref_7dv6.asp) 或 WSASendTo (Wsapiref_752q.asp) 遠程地址或端口對於遠程計算機 (例如, 地址或端口 0) 無效時從連接 (Wsapiref_8m7m.asp),。

WSAENETDOWN (10050) 
* 轉換 : 網絡已關閉。
* 說明 : A 套接字操作遇到一個死網絡。 此錯誤可能表明網絡系統, 通過 Windows 套接字 DLL 運行 (即, 協議堆棧)、 網絡接口或局域網本身的嚴重故障。

WSAENETUNREACH (10051) 
* 轉換 : 網絡不可。
* 說明 : 是 A 套接字操作試圖無法訪問網絡。 該錯誤通常意味着本地軟件知道沒有路由到達遠程主機。

WSAENETRESET (10052)
* 轉換: 網絡除去連接重置上。
* 說明 : 因 keep-alive 活動操作已在進行時檢測故障: 連接已斷開。 如果是在建立連接已經失敗上設置 SO_KEEPALIVE 試圖還通過 setsockopt (Wsapiref_94aa.asp) 返回它。

WSAECONNABORTED (10053) 
* 轉換 : 軟件導致連接中止。
* 說明 : 一個建立連接可能停止由主機計算機, 中軟件因數據傳輸超時或協議錯誤。

WSAECONNRESET (10054) 
* 轉換 : 由對等重置連接。
* 說明 : 一現有連接被強制關閉由遠程主機。 如果突然停止遠程主機上對等程序、 主機重新, 或遠程主機使用硬盤關閉此錯誤通常。有關更多信息有關遠程套接字上 SO_LINGER 選項請參閱 setsockopt (Wsapiref_94aa.asp)。如果因一個或多個操作過程中正在檢測故障 keep-alive 活動連接被中斷可能也產生此錯誤。 與 WSAENETRESET 了正在操作失敗。 與 WSAECONNRESET 後續操作失敗。

WSAENOBUFS (10055) 
* 轉換 : 無緩衝區空間。
* 說明 : 由於系統缺少緩衝區空間或者隊列已滿無法執行套接字上一操作。

WSAEISCONN (10056) 
* 轉換 : Socket 已連接。
* 說明 : A 連接請求是對一個 - 已連接到插槽。 如果儘管其他實現將此視爲有效事件 (對於 SOCK_STREAM 套, sendto (Wsapiref_4sqa.asp) 中收件人蔘數被忽略) sendto (Wsapiref_4sqa.asp) 是調用套接相連 SOCK _ DGRAM 字上某些實現也返回此錯誤。

WSAENOTCONN (10057) 
* 轉換 : 套接字未連接。
* 說明 : A 請求以發送或接收數據不允許因爲套接字未連接並且沒有地址 (報使用 sendto Wsapiref_4sqa.asp ], [ 在套接字上發送時提供)。 任何其他類型的操作可能也返回此錯誤, 例如, 如果已重置該連接設置 SO_KEEPALIVE setsockopt (Wsapiref_94aa.asp)。

WSAESHUTDOWN (10058) 
* 轉換 : 套接字關閉後無法發送。
* 說明 : A 請求以發送或接收數據是不允許因爲有已被關閉套接字以與以前關機 (Wsapiref_60z6.asp) 調用該方向。調用, 關機時是插座部分關閉請求。 這是一個信號, 發送或接收進程 (或兩者) 已停止使用。

WSAETIMEDOUT (10060) 
* 轉換 : 超連接。
* 說明 : A 連接嘗試失敗因爲相連方的時間, 段後是否正確響應或由於未能響應相連主機建立連接失敗。

WSAECONNREFUSED (10061) 
* 轉換 : 拒絕連接。
* 說明 : 可被建立無連接因爲主動拒絕它在目標計算機。 此錯誤通常可以從試圖連接到服務處於外部主機, 即, 一個不具有運行服務器程序上活動。

WSAEHOSTDOWN (10064) 
* 轉換 : 主機已關閉。
* 說明 : A 套接字操作失敗, 因爲目標主機是關閉。 套接字操作遇到死主機。 已經不初始化本地主機上網絡活動。這些條件是更願意將由 WSAETIMEDOUT 錯誤。

WSAEHOSTUNREACH (10065) 
* 轉換 : 無路由到主機。
* 說明 : 無法到達主機 A 套接字操作已嘗試。 請參閱 WSAENETUNREACH。

WSAEPROCLIM (10067) 
* 轉換 : 進程太多。
* 說明 : A WindowsSockets 實現可能限制對的程序, 可同時使用其數目。 如果已達到限制 WSAStartup (Wsapiref_1v8y.asp) 可能會失敗, 此錯誤。

WSASYSNOTREADY (10091) 
* 翻譯 : 網絡子系統不可用。
* 說明 : 如果 WindowsSockets 實現當前無法正常由於基礎系統使用它來提供網絡服務當前不可由 WSAStartup (Wsapiref_1v8y.asp) 會返回此錯誤。 確認下面: * 確認相應 Windows 套接字 DLL 文件是否位於當前路徑。
* 確認, 它們沒有試圖同時使用多個 WindowsSockets 實現。
* 如果有多個 WinsockDLL 位於系統, 確認是否適合當前加載網絡子系統首 Winsock DLL 路徑中。
* 確認所有必需的組件是當前安裝並根據 WindowsSockets 實現文檔正確配置。

WSAVERNOTSUPPORTED (10092) 
* 轉換 : Winsock.dll 版本超出範圍。
* 說明 :: 當前 WindowsSockets 實現不支持請求由程序 WindowsSockets 規範版本。 確保沒有舊 Windows 套接字 DLL 文件, 正在訪問。

WSANOTINITIALISED (10093) 
* 轉換 : 成功 WSAStartup 尚未執行。
* 說明 : Either 程序不調用 WSAStartup (Wsapiref_1v8y.asp) 或 WSAStartup (Wsapiref_1v8y.asp) 失敗。 程序可能訪問插座, 當前活動任務不擁有或 WSACleanup 已被調用多次 (即, 它是試圖共享套接字之間任務),。

WSAEDISCON (10101) 
* 轉換 : Graceful 關機過程中。
* 說明 : 由 WSARecv (Wsapiref_4z1u.asp) 和 WSARecvFrom (Wsapiref_4wky.asp) 以表明遠程方已初始化正常關機過程返回此錯誤。

WSATYPE_NOT_FOUND (10109) 
* 轉換 : 類未找到類型。
* 說明 : 未找到指定類。

WSAHOST_NOT_FOUND (11001) 
* 翻譯 : 沒有找到主機。 已知沒有這樣的主機。
* 說明 : 不名稱是一個正式主機名稱或別名, 或它找不到數據庫是被查詢中。 此錯誤可能還會返回對協議和服務查詢, 及其意味着找到相關數據庫指定名稱。

WSATRY_AGAIN (11002) 
* 轉換 : 未找到 Nonauthoritative 主機。
* 說明 : 此錯誤在主機名稱解析, 是通常臨時錯誤, 意味着本地服務器從權威服務器未收到響應。在稍後某個時間重新可能成功。

WSANO_RECOVERY (11003) 
* 轉換 : 這是無法恢復錯誤。
* 說明 : 此錯誤表明數據庫搜索期間發生某種無法恢復錯誤。 如果無法找到數據庫文件 (例如, BSD 兼容 HOSTS、 SERVICES 或 PROTOCOLS 文件) 或由服務器出現嚴重錯誤返回 DNS 請求可能發生此錯誤。

WSANO_DATA (11004) 
* 轉換 : 有效名稱, 沒有數據記錄的請求類型。
* 說明 : 請求名稱是否有效以及找到數據庫, 中但它沒有正確相關數據, 它被用於解析。 對於此典型示例是主機名稱 - 地址翻譯嘗試(使用 gethostbyname [ Wsapiref_0q5u.asp ] 或 [ Wsapiref_7bhu.asp ] WSAAsyncGetHostByName) 使用 DNS 服務器。 MX 記錄返回但沒有 A 記錄。 這意味着主機本身存在, 但是不直接到達。

WSA_INVALID_HANDLE (依賴操作系統) 
* 轉換 : 指定對象事件句柄無效。
* 說明 : 程序試圖使用事件對象, 但指定句柄無效。

WSA_INVALID_PARAMETER (依賴操作系統)
* 轉換 : 一個或多個參數是無效。
* 說明 : 程序使用 WindowsSockets 函數直接映射到 Win 32 函數。 Win 32 函數是表示一個或多個參數有問題。

WSA_IO_INCOMPLETE (依賴操作系統) 
* 轉換 : Overlapped I/O 事件對象中不通知狀態。
* 說明 : 的程序已嘗試確定的重疊操作是尚未完成狀態。 操作在完成之前, 在輪詢模式使用 WSAGetOverlappedResult (帶有 fWait 標誌集爲 FALSE),確定當重疊操作已完成程序顯示此錯誤代碼。

WSA_IO_PENDING (依賴操作系統) 
* 轉換 : Overlapped 操作完成以後。
* 說明 : 的程序初始化重疊操作無法立即完成。 當完成該操作將稍後發送完成指示。

WSA_NOT_ENOUGH_MEMORY (依賴操作系統) 
* 轉換 : 可用內存不足。
* 說明 : 程序使用 WindowsSockets 函數直接映射到 Win 32 函數。 Win 32 函數是表示需要內存資源缺乏。

WSA_OPERATION_ABORTED (依賴操作系統) 
* 轉換 : Overlapped 中止操作。
* 說明 : 由於套接字已關閉或 WSAIoctl (Wsapiref_6ik2.asp) 中 SIO_FLUSH 命令已運行一個重疊操作被取消。

WSAINVALIDPROCTABLE (依賴操作系統) 
* 翻譯 : 無效過程表從服務提供商。
* 說明 : A 服務提供程序返回到 Ws2_32.dll 無效過程表。 (這通常是由一個或多個被空函數指針)。

WSAINVALIDPROVIDER (依賴操作系統) 
* 翻譯 : 無效服務提供商版本編號。
* 說明 : A 服務提供程序返回以外 2.0 版本數。

WSAPROVIDERFAILEDINIT (依賴操作系統) 
* 翻譯 : 無法初始化服務提供程序。
* 說明 加載 (LoadLibrary 失敗) 或提供程序 WSPStartup / NSPStartup 函數失敗 Either 服務提供程序的 DLL 無法:。

WSASYSCALLFAILURE (依賴操作系統) 
* 轉換 : 系統調用失敗。
* 說明 : 應永不失敗系統調用失敗時返回此錯誤。 例如, 如果調用到 WaitForMultipleObjects 失敗或試圖更改協議或名稱空間目錄之一註冊表函數失敗發生此錯誤。
發佈了13 篇原創文章 · 獲贊 7 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章