次の方法で共有


CAsyncSocket::Listen

接続要求を待機します。

BOOL Listen(
   int nConnectionBacklog = 5 
);

パラメーター

  • nConnectionBacklog
    接続待ちのキューを拡張できる最大長。 有効な範囲は 1 ~ 5 です。

戻り値

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

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

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

  • WSAEADDRINUSE   使用中のアドレスでの待機を試みました。

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

  • WSAEINVAL   ソケットは Bind を使ってバインドされていないか、既に接続されています。

  • WSAEISCONN   ソケットは既に接続されています。

  • WSAEMFILE   利用できるファイル記述子がありません。

  • WSAENOBUFS   利用できるバッファー領域がありません。

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

  • WSAEOPNOTSUPP   参照されるソケットの型は、Listen 操作をサポートしていません。

解説

接続を受け入れるには、まず Create を使ってソケットを作成し、Listen を使って接続に入るバックログを指定します。その後、Accept を使って接続を受け入れます。 Listen は接続をサポートするソケットのみに適用されます。つまり、SOCK_STREAM 型のソケットのみに適用されます。 このソケットは "受動" モードになります。受動モードでは、接続要求は、プロセスにより認識され、受け入れ待ちのキューに置かれます。

この関数は、通常サーバー (または接続する任意のアプリケーション) によって使用は一度に 1 つ以上の接続要求を持つことができます。完全のキューに接続要求を受信した場合、クライアントの表示でエラーが表示されますWSAECONNREFUSED

Listen は利用できるポート (記述子) がないとき、合理的に処理を継続しようとします。 つまり、キューが空になるまで接続を受け入れます。 ポートが利用できるようになると、その後の Listen または Accept 呼び出しで、可能な場合は現在のまたは直前の "バックログ" へキューの内容を充填します。その後、入ってくる接続の待機を再開します。

必要条件

**ヘッダー:**afxsock.h

参照

参照

CAsyncSocket クラス

階層図

CAsyncSocket::Accept

CAsyncSocket::Connect

CAsyncSocket::Create

その他の技術情報

CAsyncSocket のメンバー