擴號中的爲錯誤代碼。 按 Ctrl + F 鍵,而後輸入您遇的錯誤代碼,就能夠快速查找到解釋。 WSAEACCES (10013) Permission denied. 試圖使用被禁止的訪問權限去訪問套接字。例如,在沒有使用函數setsockopt()的SO_BROADCAST命令設置廣播權限的套接字上使用函數sendto()給一個廣播地址發送數據。 WSAEADDRINUSE (10048) Address already in use. 正常狀況下每個套接字地址(協議/IP地址/端口號)只容許使用一次。當應用程序試圖使用bind()函數將一個被已存在的或沒有徹底關閉的或正在關閉的套接字使用了的IP地址/端口號綁紮到一個新套接字上時,該錯誤發生。對於服務器應用程序來講,若是須要使用bind()函數將多個套接字綁紮到同一個端口上,能夠考慮使用setsockopt()函數的SO_REUSEADDR命令。客戶應用程序通常沒必要使用bind()函數——connect()函數老是自動選擇沒有使用的端口號。當bind()函數操做的是通配地址(包括ADDR_ANY)時,錯誤WSAEADDRINUSE可能延遲到一個明確的地址被提交時才發生。這可能在後續的函數如connect()、listen()、WSAConnect()或WSAJoinLeaf()調用時發生。 WSAEADDRNOTAVAIL (10049) Cannot assign requested address. 被請求的地址在它的環境中是不合法的。一般地在bind()函數試圖將一個本地機器不合法的地址綁紮到套接字時產生。它也可能在connect()、sendto()、WSAConnect()、WSAJoinLeaf()或WSASendTo()函數調用時因遠程機器的遠程地址或端口號非法(如0地址或0端口號)而產生。 WSAEAFNOSUPPORT (10047) Address family not supported by protocol family. 使用的地址與被請求的協議不兼容。全部的套接字在建立時都與一個地址族(如IP協議對應的AF_INET)和一個通用的協議類型(如SOCK_STREAM)聯繫起來。若是在socket()調用中明確地要求一個不正確的協議,或在調用sendto()等函數時使用了對套接字來講是錯誤的地址族的地址,該錯誤返回。 WSAEALREADY (10037) Operation already in progress. 當在非阻塞套接字上已經有一個操做正在進行時,又有一個操做試圖在其上執行則產生此錯誤。如:在一個正在進行鏈接的非阻塞套接字上第二次調用connect()函數;或取消一個已經被取消或已完成的異步請求(WSAAsyncGetXbyY())。 WSAECONNABORTED (10053) Software caused connection abort. 一個已創建的鏈接被你的主機上的軟件終止,多是由於一次數據傳輸超時或是協議錯誤。 WSAECONNREFUSED (10061) Connection refused. 由於目標主機主動拒絕,鏈接不能創建。這一般是由於試圖鏈接到一個遠程主機上不活動的服務,如沒有服務器應用程序處於執行狀態。 WSAECONNRESET (10054) Connection reset by peer. 存在的鏈接被遠程主機強制關閉。一般緣由爲:遠程主機上對等方應用程序忽然中止運行,或遠程主機從新啓動,或遠程主機在遠程方套接字上使用了「強制」關閉(參見setsockopt(SO_LINGER))。另外,在一個或多個操做正在進行時,若是鏈接因「keep-alive」活動檢測到一個失敗而中斷,也可能致使此錯誤。此時,正在進行的操做以錯誤碼WSAENETRESET失敗返回,後續操做將失敗返回錯誤碼WSAECONNRESET。 WSAEDESTADDRREQ (10039) Destination address required. 在套接字上一個操做所必須的地址被遺漏。例如,若是sendto()函數被調用且遠程地址爲ADDR_ANY時,此錯誤被返回。 WSAEFAULT (10014) Bad address. 系統檢測到調用試圖使用的一個指針參數指向的是一個非法指針地址。若是應用程序傳遞一個非法的指針值,或緩衝區長度過小,此錯誤發生。例如,參數爲結構sockaddr,但參數的長度小於sizeof(struct sockaddr)。 WSAEHOSTDOWN (10064) Host is down. 套接字操做由於目的主機關閉而失敗返回。套接字操做遇到不活動主機。本地主機上的網絡活動沒有初始化。這些條件由錯誤碼WSAETIMEDOUT指示彷佛更合適。 WSAEHOSTUNREACH (10065) No route to host. 試圖和一個不可達主機進行套接字操做。參見WSAENETUNREACH。 WSAEINPROGRESS (10036) Operation now in progress. 一個阻塞操做正在執行。Windows Sockets只容許一個任務(或線程)在同一時間能夠有一個未完成的阻塞操做,若是此時調用了任何函數(無論此函數是否引用了該套接字或任何其它套接字),此函數將以錯誤碼WSAEINPROGRESS返回。 WSAEINTR (10004) Interrupted function call. 阻塞操做被函數WSACancelBlockingCall ()調用所中斷。 WSAEINVAL (10022) Invalid argument. 提供了非法參數(例如,在使用setsockopt()函數時指定了非法的level)。在一些實例中,它也可能與套接字的當前狀態相關,例如,在套接字沒有使用listen()使其處於監聽時調用accept()函數。 WSAEISCONN (10056) Socket is already connected. 鏈接請求發生在已經鏈接的套接字上。一些實現對於在已鏈接SOCK_DGRAM套接字上使用sendto()函數的狀況也返回此錯誤(對於SOCK_STREAM套接字,sendto()函數的to參數被忽略),儘管其它一些實現將此操做視爲合法事件。 WSAEMFILE (10024) Too many open files. 打開了太多的套接字。無論是對整個系統仍是每一進程或線程,Windows Sockets實現均可能有一個最大可用的套接字句柄數。 WSAEMSGSIZE (10040) Message too long. 在數據報套接字上發送的一個消息大於內部消息緩衝區或一些其它網絡限制,或者是用來接受數據報的緩衝區小於數據報自己。 WSAENETDOWN (10050) Network is down. 套接字操做遇到一個不活動的網絡。此錯誤可能指示網絡系統(例如WinSock DLL運行的協議棧)、網絡接口或本地網絡自己發生了一個嚴重的失敗。 WSAENETRESET (10052) Network dropped connection on reset. 在操做正在進行時鏈接因「keep-alive」檢測到失敗而中斷。也可能由setsockopt()函數返回,若是試圖使用它在一個已經失敗的鏈接上設置SO_KEEPALIVE。