CAsyncSocket::GetSockName
更新 : 2007 年 11 月
ソケットのローカル名を取得します。
BOOL GetSockName(
CString& rSocketAddress,
UINT& rSocketPort
);
BOOL GetSockName(
SOCKADDR* lpSockAddr,
int* lpSockAddrLen
);
パラメータ
rSocketAddress
ドットで区切られた数字列の IP アドレスを受け取る CString オブジェクトへの参照。rSocketPort
ポートを格納する UINT 型変数への参照。lpSockAddr
ソケットのアドレスを受け取る SOCKADDR 構造体へのポインタ。lpSockAddrLen
lpSockAddr 内のアドレス長へのポインタ。アドレス長はバイト単位です。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。GetLastError を呼び出すと、固有のエラー コードを取得できます。このメンバ関数では、次のエラーが発生します。
WSANOTINITIALISED この API を使う前に AfxSocketInit の呼び出しが正常終了していることが必要です。
WSAENETDOWN Windows ソケットの実装が、ネットワーク サブシステムの異常を検出しました。
WSAEFAULT 引数 lpSockAddrLen の長さが不足しています。
WSAEINPROGRESS 実行中の Windows ソケット呼び出しがブロッキングされています。
WSAENOTSOCK 記述子がソケットではありません。
WSAEINVAL ソケットは Bind を使ってアドレスにバインドされていません。
解説
最初に Bind を呼び出さずに Connect を呼び出してしまったときに有用です。つまり、システムが設定したローカルな関連付けを調べるためだけに用意されています。
IPv6 アドレスを処理するには、CAsyncSocket::GetSockNameEx を使用します。
必要条件
ヘッダー : afxsock.h