次の方法で共有


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 で特定のエラー コードを使用できます。

エラー コード 意味
WSAENETDOWN
ネットワーク サブシステムが失敗しました。
WSAEFAULT
name パラメーターまたは namelen パラメーターがユーザー アドレス空間の有効な部分ではないか、namelen パラメーターが小さすぎます。
WSAEINPROGRESS
関数は、コールバックが進行中のときに呼び出されます。
WSAENOTSOCK
記述子はソケットではありません。
WSAEINVAL
ソケットが LPWSPBind を使用してアドレスにバインドされていないか、ADDR_ANYが **LPWSPBind** で指定されていますが、接続はまだ発生していません。

解説

LPWSPGetSockName は 、指定されたソケット記述子の現在の名前を name で取得します。 これは 、 パラメーターで 指定されたバインドされたソケットまたは接続されたソケットで使用されます。 ローカルの関連付けが返されます。 この呼び出しは、 最初に LPWSPBind を実行せずに LPWSPConnect 呼び出しが行われた場合に特に便利です。この呼び出しは、サービス プロバイダーによって設定されたローカル関連付けを決定できる唯一の手段を提供します。

ソケットが指定されていないアドレス (たとえば、ADDR_ANY) にバインドされている場合は、指定したアドレス ファミリ内のホストのアドレスをソケットに使用する必要があることを示します。LPWSPGetSockName は、ソケットが LPWSPConnect または LPWSPAccept に接続されていない限り、必ずしもホスト アドレスに関する情報を返すわけではありません。 Windows ソケット SPI クライアントでは、ソケットが接続されていない限り、アドレスが指定されると想定しないでください。 これは、マルチホーム ホストの場合、ソケットに使用されるアドレスは、ソケットが接続されるまで不明であるためです。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
Header ws2spi.h

関連項目

LPWSPBind

LPWSPGetPeerName

LPWSPSocket