次の方法で共有


CAsyncSocket::Bind

更新 : 2007 年 11 月

ソケットをローカル アドレスに結び付けます。

BOOL Bind(
   UINT nSocketPort,
   LPCTSTR lpszSocketAddress = NULL 
);
BOOL Bind (
   const SOCKADDR* lpSockAddr,
   int nSockAddrLen 
);

パラメータ

  • nSocketPort
    ソケット アプリケーションを識別するポート。

  • lpszSocketAddress
    ネットワーク アドレス。"128.56.22.8" のように数字をドットで区切ります。このパラメータに NULL 文字列を指定した場合、CAsyncSocket インスタンスは、すべてのネットワーク インターフェイス上でクライアントのアクティビティを待機します。

  • lpSockAddr
    ソケットに割り当てられるアドレスを持つ SOCKADDR 構造体へのポインタ。

  • nSockAddrLen
    lpSockAddr 内のアドレス長。バイト単位で指定します。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。GetLastError を呼び出すと、固有のエラー コードを取得できます。このメンバ関数では、次のエラーが発生します。

  • WSANOTINITIALISED   この API を使う前に AfxSocketInit の呼び出しが正常終了していることが必要です。

  • WSAENETDOWN   Windows ソケットの実装が、ネットワーク サブシステムの異常を検出しました。

  • WSAEADDRINUSE   指定したアドレスは使用中です。「SetSockOpt」のソケット オプション SO_REUSEADDR を参照してください。

  • WSAEFAULT   引数 nSockAddrLen が小さすぎます。SOCKADDR 構造体のサイズよりも小さくなっています。

  • WSAEINPROGRESS   実行中の Windows ソケット呼び出しがブロッキングされています。

  • WSAEAFNOSUPPORT   指定したアドレス ファミリは、このポートではサポートしていません。

  • WSAEINVAL   ソケットは既にアドレスにバインドされています。

  • WSAENOBUFS   利用できるバッファ情報がありません。接続が多すぎます。

  • WSAENOTSOCK   記述子がソケットではありません。

解説

このルーチンは、未接続のデータグラムまたはストリーム ソケットに対して使います。このルーチンに続いて Connect または Listen を呼び出します。接続要求を受け入れる前に、リスナとなるサーバー ソケットはポート番号を選択し、Bind を呼び出して Windows ソケットにポート番号を通知します。Bind は、名前のないソケットにローカル名を割り当てることにより、ソケットのローカルな関連付け (ホスト アドレスおよびポート番号) を確立します。

必要条件

ヘッダー : afxsock.h

参照

参照

CAsyncSocket クラス

階層図

CAsyncSocket::Connect

CAsyncSocket::Listen

CAsyncSocket::GetSockName

CAsyncSocket::SetSockOpt

CAsyncSocket::Create

その他の技術情報

CAsyncSocket のメンバ