LPWSPGETSOCKNAME コールバック関数 (ws2spi.h)
LPWSPGetSockName 関数は、ソケットのローカル名を取得します。
構文
LPWSPGETSOCKNAME Lpwspgetsockname;
int Lpwspgetsockname(
[in] SOCKET s,
[out] sockaddr *name,
[in, out] LPINT namelen,
[out] LPINT lpErrno
)
{...}
パラメーター
[in] s
バインドされたソケットを識別する記述子。
[out] name
ソケットのアドレス (名前) を指定するために使用される sockaddr 構造体へのポインター。
[in, out] namelen
入力時に、 名前によって指される構造体のサイズをバイト単位で示す整数へのポインター。 出力時には、返された名前のサイズをバイト単位で示します。
[out] lpErrno
エラー コードへのポインター。
戻り値
エラーが発生しない場合、 LPWSPGetSockName は 0 を返します。 それ以外の場合は、SOCKET_ERRORの値が返され、 lpErrno で特定のエラー コードを使用できます。
エラー コード | 意味 |
---|---|
ネットワーク サブシステムが失敗しました。 | |
name パラメーターまたは namelen パラメーターがユーザー アドレス空間の有効な部分ではないか、namelen パラメーターが小さすぎます。 | |
関数は、コールバックが進行中のときに呼び出されます。 | |
記述子はソケットではありません。 | |
ソケットが LPWSPBind を使用してアドレスにバインドされていないか、ADDR_ANYが **LPWSPBind** で指定されていますが、接続はまだ発生していません。 |
解説
LPWSPGetSockName は 、指定されたソケット記述子の現在の名前を name で取得します。 これは 、 パラメーターで 指定されたバインドされたソケットまたは接続されたソケットで使用されます。 ローカルの関連付けが返されます。 この呼び出しは、 最初に LPWSPBind を実行せずに LPWSPConnect 呼び出しが行われた場合に特に便利です。この呼び出しは、サービス プロバイダーによって設定されたローカル関連付けを決定できる唯一の手段を提供します。
ソケットが指定されていないアドレス (たとえば、ADDR_ANY) にバインドされている場合は、指定したアドレス ファミリ内のホストのアドレスをソケットに使用する必要があることを示します。LPWSPGetSockName は、ソケットが LPWSPConnect または LPWSPAccept に接続されていない限り、必ずしもホスト アドレスに関する情報を返すわけではありません。 Windows ソケット SPI クライアントでは、ソケットが接続されていない限り、アドレスが指定されると想定しないでください。 これは、マルチホーム ホストの場合、ソケットに使用されるアドレスは、ソケットが接続されるまで不明であるためです。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
Header | ws2spi.h |