SO_BSP_STATE ソケット オプション
SO_BSP_STATE ソケット オプションは、ソケットによって使用されるローカル アドレス、ローカル ポート、リモート アドレス、リモート ポート、ソケットの種類、プロトコルを返します。
この操作を実行するには、次のパラメーターを使用して getsockopt 関数を呼び出します。
ソケット オプションの値
このソケット オプションを表す定数は0x1009。
構文
int getsockopt(
(SOCKET) s, // descriptor identifying a socket
(int) SOL_SOCKET, // level
(int) SO_BSP_STATE, // optname
(char *) optval, // output buffer,
(int) *optlen, // size of output buffer
);
パラメーター
-
s [in]
-
ソケットを識別する記述子。
-
level [in]
-
オプションが定義されているレベル。 この操作 にはSOL_SOCKET を使用します。
-
optname [in]
-
値を取得するソケット オプション。 この操作 にはSO_BSP_STATE を使用します。
-
optval [out]
-
要求されたオプションの値が返されるバッファーへのポインター。 このパラメーターは、 CSADDR_INFO 構造体のサイズ以上のバッファーを指す必要があります。
-
optlen [in, out]
-
optval バッファーのサイズ (バイト単位) へのポインター。 このサイズは、 CSADDR_INFO 構造体のサイズ以上である必要があります。
戻り値
操作が正常に完了すると、 getsockopt は 0 を返します。
操作が失敗した場合は、SOCKET_ERRORの値が返され、 WSAGetLastError を呼び出すことによって特定のエラー コードを取得できます。
エラー コード | 意味 |
---|---|
この関数を使用する前に、 WSAStartup 呼び出しが正常に行われる必要があります。 |
|
ネットワーク サブシステムが失敗しました。 |
|
optval パラメーターまたは optlen パラメーターの 1 つは、ユーザー アドレス空間の有効な部分にないメモリを指します。
optlen パラメーターによって指される値がCSADDR_INFO構造体のサイズより小さい場合も、このエラーが返されます。 |
|
ブロックしている Windows Sockets 1.1 呼び出しが進行中であるか、サービス プロバイダーがコールバック関数を処理しています。 |
|
level パラメーターが不明または無効です。 |
|
オプションが不明であるか、指定されたプロトコル ファミリでサポートされていません。 |
|
記述子はソケットではありません。 |
解説
SO_BSP_STATE ソケット オプションで呼び出される getsockopt 関数は、ソケットによって使用されるローカル アドレス、ローカル ポート、リモート アドレス、リモート ポート、ソケットの種類、プロトコルを取得します。 SO_BSP_STATE ソケット オプションは、IPv6 または IPv4 ソケット (AF_INET6 および AF_INET アドレス ファミリ) で動作します。
getsockopt 関数が成功した場合、optval パラメーターによって指されるバッファー内のCSADDR_INFO構造体で情報が返されます。 optlen が指す整数には、最初にこのバッファーのサイズが含まれている必要があります。戻り時には、optval パラメーターで返される値の長さ (バイト単位) に設定されます。
返されたCSADDR_INFO構造体の iSocketType メンバーと iProtocol メンバーは、 パラメーターのソケット記述子に対して入力されます。
ソケットが接続状態またはバインド状態の場合、返されるCSADDR_INFO構造体の LocalAddr メンバーは、ローカル アドレスとポートを表す SOCKADDR 構造体に設定されます。 ソケットが接続状態の場合、返されたCSADDR_INFO構造体の RemoteAddr メンバーは、リモート アドレスとポートを表す SOCKADDR 構造体に設定されます。
ソケットが接続またはバインドされた状態でない場合は、返されたCSADDR_INFO構造体の LocalAddr メンバーが lpSockaddr メンバー内の NULL ポインターで返され、iSockaddrLength メンバーは 0 に設定されます。 ソケットがバインドされた状態でない場合は、返されたCSADDR_INFO構造体の RemoteAddr メンバーが lpSockaddr メンバー内の NULL ポインターで返され、iSockaddrLength メンバーは 0 に設定されます。
getsockopt 関数が失敗した場合、optval パラメーターと optlen パラメーターは変更されず、optval パラメーターは返されるCSADDR_INFO構造体を指しません。
Ws2def.h ヘッダー ファイルは Winsock2.h に自動的に含まれるので、直接使用しないでください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows Server 2008 [デスクトップ アプリのみ] |
ヘッダー |
|
関連項目