1. ホーム

Windowsソケットのエラーコードとエラーの原因

2022-02-24 20:25:19

 取得元:http://blog.csdn.net/cll131421/article/details/39495547

 Windows Sockets では、ヘッダーファイル winsock.h ですべてのエラーコードを定義しています。これらのエラーコードには、Windows Sockets の実装が返す "WSA" というプレフィックス付きのエラーコードと、 Berkeley Sockets が定義するエラーコードのフルセットが含まれています。Berkeley Socketsのエラーコードは、レガシーソフトウェアの移植性を確保するために定義されています。

A.1 Windowsソケットのエラーコード一覧

表 A.1 は、WSAGetLastError() 関数が返す可能性のあるエラーコードとその説明の一覧で、4つのパートに分かれています。
エラーコードの最初の部分は、異なるCコンパイルで標準Cエラーコードの定義に一貫性がないことを解決するために使用されます。エラーコードの2番目の部分は、標準的なバークレーソケットのエラーコードのWindowsソケット版である。エラーコードの3番目の部分は、特定のWindowsソケットの拡張のためのエラーコードを含んでいます。エラーコードの4番目の部分は、Windows SocketsのgetXbyY()とWSAAsyncGetXByY()関数が返すもので、バークレーソフトウェアでは変数h_errnoが返すエラーと同等である (実際、Windows Socketsはヘッダーファイルwinsock.hのh_errorを値 WSAGetLastError() とマクロとして定義した) 彼らはドメイン名サービスが返す各種の障害と等価である。Windowsソケットの実装がDomain Name Serviceを使用しない場合、最も適切なコードを使用することになる。一般に、Windows ソケットアプリケーションは、エラー WSAHOST_NOT_FOUND と WSANO_DATA をキーワード (名前、アドレスなど) が見つからなかったと解釈すべきであり、一方、エラー WSATRY_AGAIN と WSANO_RECOVERY はネームサービス自体が動作していないという注意点である。
エラーコードはWindowsソケットの仕様で定義されており、同じバージョンのWindowsソケットに準拠したすべての実装で一貫性があります。
表A.1 Windowsソケットのエラーコード
<テーブル Windowsソケットのエラーコード バークレー通信のエラーコード エラー番号 説明 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 プロトンサポート 10043 BSDと同じ wsaesocktnosupport エソックトノサポ-ト 10044 BSDと同じ WSAEOPNOTSUPP EOPNOTSUPP 10045 BSDと同じ wsaepfnosupport EPFNOSUPPORT 10046 BSDと同じ wsaeafnosupport EAFNOSUPPORT 10047 BSDと同じ WSAEADDRINUSE EADDRINUSE 10048 BSDと同じ wsaeaddrnotavail EADDRNOTAVAIL 10049 BSDと同じ WSAENETDOWN ENETDOWN 10050 BSDと同じ。Windowsソケットの実装がネットワークサブシステムの障害を検出すると、いつでもこのエラーを報告します。 WSAENETUNREACH ENETUNREACH 10051 BSDと同じ WSAENETRESET エネットリセット 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 エトマニアレフ 10059 BSDと同じ WSAETIMEDOUT エティメッドアウト 10060 BSDと同じ wsaeconnrefused ECONNREFUSED 10061 BSDと同じ WSAELOOP ELOOP 10062 BSDと同じ wsaenametoolong ENAMETOOLONG 10063 BSDと同じ WSAEHOSTDOWN EHOSTDOWN 10064 BSDと同じ wsaehostunreach EHOSTUNREACH 10065 BSDと同じ WSASYSNOTREADY 10091 WSAStartup()が返した、ネットワークサブシステムが使用できないことを示すメッセージです。 wsavernotsupported 10092 WSAStartup()が返す、Windows ソケットを表す値です。



DLLはこのアプリケーションをサポートできません。 wsanotinitialised 10093 WSAStartup() 以外の関数から返された、WSAStartup() が正常に実行されなかったことを示します。 WSAEDISCON 10101 WSARecv() および WSARecvFrom() が返した値で、リモートパーティがシャットダウン・シーケンスを 初期化したことを示します。 wsahost_not_found HOST_NOT_FOUND 11001 BSDと同じ WSATRY_AGAIN TRY_AGAIN 11002 BSDと同じ WSANO_RECOVERY NO_RECOVERY 11003 BSDと同じ WSANO_DATA NO_DATA 11004 BSDと同じ

A.2  Windowsソケットのエラーコードの説明の拡張

WSAGetLastError() 関数によって返される可能性のあるエラーコードのアルファベット順のリストと、簡単な拡張説明が以下に示されています。
WSAEACCES (10013) パーミッションが拒否されました。
アクセス拒否されたソケットにアクセスしようとした。例えば、socketockopt()関数でSO_BROADCASTコマンドを使用してブロードキャストアクセスを設定していないソケットのブロードキャストアドレスにデータを送信する場合、sendto()関数を使用します。
WSAEADDRINUSE (10048) アドレスは既に使用中です。
通常、各ソケットアドレス(プロトコル/IPアドレス/ポート番号)は一度だけ使用することができます。このエラーは、アプリケーションが bind() 関数を用いて、既存のソケットや完全に閉じていないソケットで既に使用されている IP アドレス/ポート番号を新しいソケットに結びつけようとしたときに発生します。bind()関数で複数のソケットを同じポートにバインドする必要があるサーバアプリケーションでは、setsockopt()関数のSO_REUSEADDRコマンドの利用を検討してください。クライアントアプリケーションは、一般に bind() 関数を使用する必要はありません - connect() 関数は常に、使用されていないポート番号を自動的に選択します。bind() 関数が (ADDR_ANY を含む) ワイルドカードアドレスを操作する場合、明示的なアドレスがコミットされるまで WSAEADDRINUSE というエラーが遅延することがあります。これは、connect(), listen(), WSAConnect(), WSAJoinLeaf() などの後続の関数が呼び出されたときに発生する可能性があります。
WSAEADDRNOTAVAIL (10049) 要求されたアドレスを割り当てることができません。
要求されたアドレスは、その環境では合法ではありません。これは通常、bind() 関数がローカルマシンから不正なアドレスをソケットに結びつけようとしたときに生成されます。また、connect()、sendto()、WSAConnect()、WSAJoinLeaf()、WSASendTo() 関数が、リモートマシンの不正なリモートアドレスやポート番号 (0 アドレス、0 ポート番号など) で呼ばれた場合にも生成される場合があります。
WSAEAFNOSUPPORT (10047) プロトコルファミリでサポートされていないアドレスファミリです。
使用されているアドレスは、要求されたプロトコルと互換性がありません。すべてのソケットは、アドレスファミリ (IP プロトコルの AF_INET など) と共通のプロトコルタイプ (SOCK_STREAM など) を関連付けて作成されている。socket() の呼び出しで不正なプロトコルが明示的に要求された場合、または sendto() などの関数がソケットに対して不正なアドレスファミリのアドレスで呼び出された場合、このエラーが返される。
WSAEALREADY (10037) 操作はすでに進行中です。
このエラーは、ノンブロッキングソケットに対して、すでに進行中の操作を行おうとした場合に発生します。例えば、接続中のノンブロッキングソケットに対して2回目の connect() 関数を呼び出したり、既にキャンセルまたは完了した非同期リクエスト (WSAAsyncGetXbyY()) をキャンセルするといった場合です。
WSAECONNABORTED (10053) ソフトウェアが接続を中断させました。
確立された接続が、データ転送のタイムアウトまたはプロトコルエラーのために、ホスト上のソフトウェアによって終了されました。
WSAECONNREFUSED (10061) 接続が拒否されました。
ターゲットホストがアクティブに拒否したため、接続を確立できませんでした。これは通常、実行中のサーバーアプリケーションがないなど、リモートホスト上の非アクティブなサービスに接続しようとしたことが原因です。
WSAECONNRESET (10054) 相手によって接続がリセットされました。
既存の接続がリモートホストによって強制的に閉じられました。これは通常、リモートホスト上の相手アプリケーションの突然の実行停止、リモートホストの再起動、リモートホストによるリモートソケットの "forced" の使用 (setsockopt(SO_LINGER) を参照) が原因です。あるいは、1つ以上の操作の進行中に "keep-alive" 活動によって検出された失敗のために接続が切断された場合にも、このエラーが発生する可能性がある。この場合、進行中の操作はエラーコード WSAENETRESET failed で返され、その後の操作はエラーコード WSAECONNRESET で失敗する。
WSAEDESTADDRREQ (10039) 宛先アドレスが必要です。
ソケットに対する操作に必要なアドレスが欠落しています。例えば、sendto()関数を呼び出したときにリモートアドレスがADDR_ANYであった場合、このエラーが返される。
WSAEFAULT (10014) アドレスが不正です。
システムは、呼び出しが不正なポインタアドレスを指すポインタパラメータを使用しようとしたことを検出しました。このエラーは、アプリケーションが不正なポインタ値を渡した場合、またはバッファ長が小さすぎる場合に発生します。例えば、引数は struct sockaddr ですが、引数の長さが sizeof(struct sockaddr) よりも小さい場合です。
WSAEHOSTDOWN (10064) ホストが停止しています。
宛先ホストがダウンしているため、ソケット操作が返せなかった。ソケット操作が非アクティブなホストに遭遇した ローカルホストのネットワークアクティビティが初期化されていない。これらの条件は、エラーコードWSAETIMEDOUTで示すのが適切であると思われる。
WSAEHOSTUNREACH (10065) ホストへのルートがありません。
到達不可能なホストでソケット操作を行おうとした。WSAENETUNREACHを参照してください。
WSAEINPROGRESS (10036) 操作が進行中です。
Windowsソケットは、タスク(またはスレッド)が同時に未処理のブロッキング操作を行うことしか許さないので、この時に何らかの関数が呼ばれると(それがこのソケットや他のソケットを参照しているかどうかに関わらず)、その関数はエラーコードWSAEINPROGRESSで返されることになります。
WSAEINTR (10004) 関数呼び出しが中断されました。
WSACancelBlockingCall()関数呼び出しにより、ブロック操作が中断されました。
WSAEINVAL (10022) 無効な引数です。
不正な引数が指定された(たとえば、setsockopt()関数使用時に不正なレベルが指定された)。また、ソケットが listen() を使ってリスニングしていないときに accept() 関数を呼び出すなど、ソケットの現在の状態に関係する場合もある。
WSAEISCONN (10056) ソケットはすでに接続されています。
接続要求がすでに接続されているソケットで発生した。接続中の SOCK_DGRAM ソケットに対して sendto() 関数を使用した場合にもこのエラーを返す実装があるが (SOCK_STREAM ソケットに対しては sendto() 関数の to パラメータは無視される)、この操作を正当なイベントとして扱う実装もある。
WSAEMFILE (10024) 開いているファイルが多すぎます。
開いているソケットが多すぎます。Windowsソケットの実装では、システム全体、またはプロセスやスレッドごとに、利用可能なソケットハンドルの最大数が決められている場合があります。
WSAEMSGSIZE (10040) メッセージが長すぎます。
データグラムソケットで送信されたメッセージが内部メッセージバッファまたは他のネットワーク制限より大きい、またはデータグラムを受信するために使用されるバッファがデータグラム自体より小さい。
WSAENETDOWN (10050) ネットワークがダウンしています。
ソケット操作でネットワークが非アクティブになりました。このエラーは、ネットワークシステム(WinSock DLLが動作しているプロトコルスタックなど)、ネットワークインターフェース、またはローカルネットワーク自体に重大な障害があることを示している可能性があります。
WSAENETRESET (10052) リセット時にネットワークが接続を切断しました。
操作中に"keep-alive"が失敗を検出したため、接続が切断されました。socksockopt() 関数を使用して、失敗した接続に SO_KEEPALIVE を設定しようとした場合にも返されることがあります。
WSAENETUNREACH (10051) ネットワークが到達不能です。
到達不可能なネットワークでソケット操作を行おうとしました。多くの場合、ローカルソフトウェアがリモートホストへの経路を知らないことを意味します。
WSAENOBUFS (10055) バッファの空き容量がありません。
システムに十分なバッファスペースがない、またはキューが満杯であるため、ソケットに対する操作を実行できませんでした。
WSAENOPROTOOPT (10042) 不正なプロトコルオプションです。
getsockopt()またはsetsockopt()の呼び出しで、不明、不正、またはサポートされていないオプションやレベルが指定されました。
WSAENOTCONN (10057) ソケットが接続されていません。
ソケットが接続されていない、または sendto() 関数を使用してデータグラムソケットで送信する際にアドレスが提供されていないため、データの送信または受信の要求が許可されませんでした。他の種類の操作でもこのエラーを返すことがある。例えば、setsockopt()関数を使用してリセットされた接続に SO_KEEPALIVE を設定した場合などである。
WSAENOTSOCK (10038) 非ソケットに対するソケット操作です。
操作の試みがソケット上で行われませんでした。ソケットハンドルの引数が正当なソケットを参照していないか、select()関数が呼ばれたときにfd_setのメンバが正当でない可能性がある。
WSAEOPNOTSUPP (10045) 操作がサポートされていません。
参照されているオブジェクトのタイプに対して、試行された操作はサポートされていません。通常、データグラムソケットで接続を受けようとした場合など、ソケットがこの操作をサポートしていないソケットディスクリプタで発生する。
WSAEPFNOSUPPORT (10046) プロトコルファミリがサポートされていません。
そのプロトコル群はシステムに設定されていないか、サポートする実装が存在しない。WSAEAFNOSUPPORTとは若干異なりますが、ほとんどの場合互換性があり、この2つのエラーを返すWindows Sockets関数はすべてWSAEAFNOSUPPORTの説明で記述されています。
WSAEPROCLIM (10067) プロセス数が多すぎます。
Windows Socket の実装では、同時に使用できるアプリケーションの数が制限されている場合があり、この制限に達した場合、WSAStartup() 関数はエラーで失敗することがあります。
WSAEPROTONOSUPPORT (10043) プロトコルがサポートされていません。
要求されたプロトコルはシステムで設定されていないか、それをサポートする実装が存在しない。例えば、socket() の呼び出しで SOCK_DGRAM ソケットが要求されたが、ストリーミングプロトコルが指定された。
WSAEPROTOTYPE (10041) プロトコルがソケットのタイプとして間違っています。
socket()関数呼び出しで指定されたプロトコルは、要求されたソケットタイプのセマンティクスをサポートしていない。例えば、ARPA Internet UDP プロトコルは、SOCK_STREAM ソケットタイプと共に指定できない。
WSAESHUTDOWN (10058) ソケットシャットダウン後に送信できません。
以前の shutdown() 呼び出しにより、対応する方向のソケットが閉じられているため、その方向への送信または受信要求は許可されない。ソケットの部分的なシャットダウンは、shutdown()関数を呼び出すことで要求され、送信または受信を停止するシグナルを送信する、または双方向の操作を停止する。
WSAESOCKTNOSUPPORT (10044) ソケットタイプはサポートされていません。
このアドレスファミリで指定されたソケットタイプはサポートされていません。例えば、socket()の呼び出しでオプションのソケットタイプ SOCK_RAW が選択されているが、実装では SOCK_RAW ソケットが全くサポートされていない。
WSAETIMEDOUT (10060) 接続がタイムアウトしました。
接続相手が時間内に正しく応答できなかったため接続要求に失敗した、または接続ホストが応答できなかったため確立した接続に失敗した。
WSATYPE_NOT_FOUND (10109) クラスタイプが見つかりません。
指定されたクラスは見つかりませんでした。
WSAEWOULDBLOCK (10035) リソースが一時的に使用できません。
このエラーは、ノンブロッキングソケットですぐに完了できない操作によって返されます。例えば、ソケットに読み込むべきキューに入ったデータがないときにrecv()関数を呼び出した場合です。このエラーはクリティカルエラーではないので、対応する操作は後で再試行する必要がある。ノンブロッキングの SOCK_STREAM ソケットで connect() 関数を呼び出した場合、接続の確立に時間がかかるため、WSAEWOULDBLOCK を報告するのが普通である。
WSAHOST_NOT_FOUND (11001) ホストが見つかりませんでした。
ホストが不明です。この名前は正式なホスト名でもエイリアスでもなく、照会されたデータベースで見つかりませんでした。このエラーはプロトコルやサービスの問い合わせでも返されることがあり、これは指定された名前が関連するデータベースで見つからないことを意味します。
WSA_INVALID_HANDLE (OS 依存) 指定されたイベントオブジェクトハンドルが無効である。
アプリケーションはイベントオブジェクトを使用しようとしているが、指定されたハンドルは無効である。
WSA_INVALID_PARAMETER (OS依存) 1つ以上のパラメータが無効である。
アプリケーションはWin32関数に直接マッピングされるWinSock関数を使用しており、Win32関数は1つ以上のパラメータに欠陥があることを示します。
WSAINVALIDPROCTABLE (OS依存) サービスプロバイダからのプロシージャテーブルが無効です。
サービスプロバイダがWS2_32.DLLから不正なプロシージャテーブルを返しました。これは通常、1つまたは複数の関数ポインタが空であることが原因です。
WSAINVALIDPROVIDER (OS依存) サービスプロバイダのバージョン番号が無効です。
サービスプロバイダが2.2とは異なるバージョン番号を返した。
WSA_IO_INCOMPLETE (OS依存) 重ねたI/Oイベントオブジェクトがシグナル状態でない。
アプリケーションは、完了していないオーバーラップした操作の状態を検出しようとしています。ポーリングモードでWSAGetOverlappedResult()関数(fWaitパラメータをfalseに設定)を使用してオーバーラップした操作が完了したかどうかを検出すると、アプリケーションはこのエラーコードを取得します(すでに完了している場合は除きます)。
WSA_IO_PENDING (OS依存) 重ねた操作は後で完了します。
アプリケーションは、すぐに完了できないオーバーラップした操作を初期化しました。この操作が後で完了したときに、完了の表示があります。
WSA_NOT_ENOUGH_MEMORY (OS依存) 使用可能なメモリが不足しています。
アプリケーションは、必要なメモリリソースの不足を示すWin32関数に直接マッピングされるWinSock関数を使用しています。
WSANOTINITIALISED (10093) WSAStartup()がまだ実行されていないため成功しませんでした。
アプリケーションがWSAStartup()関数を呼び出さなかったか、WSAStartup()関数の呼び出しに失敗しました。アプリケーションが、現在アクティブなタスクに属さないソケットにアクセスした (例:タスク間でソケットを共有しようとした) か、WSACleanup() 関数を多く呼び出した可能性があります。
WSANO_DATA (11004) 有効な名前ですが、要求されたタイプのデータレコードがありません。
要求された名前は合法であり、データベースで見つかりますが、解析のための正しい関連データを持っていません。このエラーの一般的な例は、ホスト名からアドレスへの DNS 変換要求 (gethostbyname() または WSAAsyncGetHostByName() 関数を使用) によって MX (Mail eXchanger) レコードが返され、A (Address) レコードがないことです。
WSANO_RECOVERY (11003) これは回復不可能なエラーです。
このエラーコードは、データベースの検索中に何らかの回復不能なエラーが発生したことを示します。データベースファイル(BSD互換のHOSTS、SERVICES、PROTOCOLSファイルなど)が見つからなかったか、深刻なサーバーエラーに対応してDNS要求が返されたことが原因かもしれません。
WSAPROVIDERFAILEDINIT (OS依存) サービスプロバイダを初期化できません。
サービスプロバイダのDLLをロードできなかった(LoadLibrary()に失敗)、またはプロバイダのWSPStartup/NSPStartup関数に失敗しました。
WSASYSCALLFAILURE (OS依存) システムコールに失敗しました...。
失敗してはいけないシステムコールが失敗したときに返されます。例えば、WaitForMultipleObjects()の呼び出しに失敗した場合や、登録されたAPIがプロトコル/名前空間ディレクトリを利用できない場合などです。
WSASYSNOTREADY (10091) ネットワークサブシステムが使用できません。
WSAStartup()関数が返すこのエラーは、ネットワークサービスを提供するために使用される基礎的なシステムのために、現時点ではWindowsソケットの実装が利用できないことを示します。ユーザーは確認する必要があります。
現在のパスに適切な Windows ソケット DLL ファイルがあるかどうか。
複数のWinSock実装が同時に使用されているかどうか。システム上に複数のWINSOCK DLLがある場合、検索パス内の最初のWINSOCK DLLファイルが現在ロードされているネットワークサブシステムに必要であることを確認する必要があります。
WinSockの実装に関するドキュメントを確認し、すべての必要なコンポーネントが正しくインストールされ、設定されていることを確認します。
WSATRY_AGAIN (11002) 権限がないホストが見つかりませんでした。
このエラーは通常、ホスト名解決中の一時的なエラーで、ローカルサーバーが権威サーバーから応答を受信しなかったことを意味します。後で再試行すると成功することがあります。
WSAVERNOTSUPPORTED (10092) WINSOCK.DLL バージョンが範囲外です。
現在のWinSockの実装は、アプリケーションが指定したWindowsソケットの仕様バージョンに対応していません。古いWindowsソケットのDLLファイルがアクセスされていないか確認してください。
WSAEDISCON (10101) 優雅なシャットダウンが進行中です。
WSARecv() および WSARecvFrom() 関数が返す値で、リモートパーティが "graceful" シャットダウン・シーケンスを初期化したことを示します。
WSA_OPERATION_ABORTED (OS依存) 重ね合わせ操作を中止した。
ソケットがクローズされたか、WSAIoctl()関数のSIO_FLUSHコマンドが実行されたため、オーバーラップ操作が中断されました。
以下の英文説明はMSDNから引用しています。

エラーコード

が返す可能性のあるエラーコードの一覧は次のとおりです。  WSAGetLastError  エラーは、エラーマクロのアルファベット順に記載されています。WINSOCK2.Hで定義されているエラーコードの中には、WINSOCK2.Hで定義されているエラーコードがどの関数からも返されないものがあるため、ここではリストアップしていない。

WSAEACCES
(10013)
パーミッションが拒否されました .
ソケットのアクセス権限で禁止されている方法でアクセスしようとしました。  送信  を使用してブロードキャストパーミッションが設定されていない場合 setsockopt(SO_BROADCAST) .
WSAEADDRINUSE
(10048)
アドレスはすでに使用中 .
各ソケットアドレス(プロトコル/IPアドレス/ポート)は、通常1つしか使用できません。このエラーは、アプリケーションが  バインド  既存のソケットで既に使用されているIPアドレス/ポートにソケットを接続する場合、またはソケットが正しく閉じられていない場合、またはソケットがまだ処理中の場合。  バインド  複数のソケットを同じポート番号に割り当てるには  setsockopt(SO_REUSEADDR) . クライアントアプリケーションは通常 バインド  を使用します。  接続する  は自動的に未使用のポートを選択します。  バインド  がワイルドカードアドレスで呼び出された場合 (ADDR_ANY を呼び出した場合)、特定のアドレスが "committed." されるまで WSAEADDRINUSE エラーが遅延する可能性があります。  接続 , リッスン WSAConnect  または  WSAJoinLeaf .
wsaeaddrnotavail
(10049)
要求されたアドレスを割り当てることができない .
要求されたアドレスは、そのコンテキストでは有効ではありません。  バインド  また、次のような場合もあります。  接続する 送信 , WSAConnect WSAJoinLeaf または  WSASendTo  リモートマシンのアドレスやポートが有効でない場合(アドレスやポート0など)。
wsaeafnosupport
(10047)
プロトコルファミリがサポートしていないアドレスファミリ .
要求されたプロトコルと互換性のないアドレスが使用されました。すべてのソケットは、関連するアドレスファミリ (例: インターネットプロトコル用の AF_INET) と一般的なプロトコルタイプ (例: SOCK_STREAM) で作成されます。で不正なプロトコルが明示的に要求された場合、このエラーが返される。  ソケット  の呼び出し、または間違ったファミリーのアドレスがソケットに使用された場合、 例えば  sendto .
WSAEALREADY
(10037)
すでにオペレーションが進行中 .
すでに操作中のノンブロッキングソケットに対して操作を行おうとした。  接続  既に接続中のノンブロッキングソケットに再度接続する、あるいは、既にキャンセルまたは完了した非同期リクエスト(WSAAsyncGetXbyY)をキャンセルする。
wsaeconnaborted
(10053)
ソフトウェアが原因で接続が中断された .
確立された接続が、ホストマシンのソフトウェアによって中断されました。データ転送のタイムアウトまたはプロトコルエラーが原因である可能性があります。
wsaeconnrefused
(10061)
接続拒否 .
ターゲットマシーンが積極的に拒否したため、接続できませんでした。これは通常、外部ホストで非アクティブなサービス、つまりサーバーアプリケーションを実行していないサービスに接続しようとした場合に起こります。
WSAECONNRESET
(10054)
相手による接続のリセット .
既存の接続がリモートホストによって強制的に閉じられました。これは通常、リモートホスト上のピアアプリケーションが突然停止した場合、ホストが再起動された場合、またはリモートホストが "hard close" を使用した場合などに起こります (  セットソックオプト  の詳細については  SO_LINGER  ) このエラーは、1つ以上の操作の進行中に "keep-alive" アクティビティが障害を検出したために接続が切断された場合にも発生する可能性があります。進行中の操作は、WSAENETRESETで失敗します。その後の操作は、WSAECONNRESETで失敗します。
WSAEDESTADDRREQ
(10039)
宛先アドレス必須 .
ソケットに対する操作で、必要なアドレスが省略された。例えば、次のような場合、このエラーが返されます。  送信  がリモートアドレス ADDR_ANY で呼び出されました。
WSAEFAULT
(10014)
アドレス不良 .
呼び出しのポインタ引数を使用しようとして、システムが無効なポインタアドレスを検出しました。例えば、struct sockaddrである引数の長さがsizeof( struct sockaddr)よりも小さい場合です。
WSAEHOSTDOWN
(10064)
ホストが停止しています .
ソケット操作でデッドホストに遭遇しました。ローカルホストでのネットワーキング活動が開始されていない。これらの状態は、WSAETIMEDOUTというエラーで示される可能性が高い。
wsaehostunreach
(10065)
ホストへのルートがない .
到達不能なホストに対してソケット操作を試みた WSAENETUNREACH参照
WSAEINPROGRESS
(10036)
現在進行中の操作 .
現在、ブロッキング動作が実行されています。Windows ソケットでは、1 つのブロッキング操作しか実行できません。