System.Net.Socket.TSocket.Listen

提供: RAD Studio API Documentation
移動先: 案内検索

Delphi

procedure Listen(const Address, Service: string; Port: Word; QueueSize: Integer = -1); overload;
procedure Listen(const Endpoint: TNetEndpoint; QueueSize: Integer = -1); overload;

C++

void __fastcall Listen(const System::UnicodeString Address, const System::UnicodeString Service, System::Word Port, int QueueSize = 0xffffffff)/* overload */;
void __fastcall Listen(const TNetEndpoint &Endpoint, int QueueSize = 0xffffffff)/* overload */;

プロパティ

種類 可視性 ソース ユニット
procedure
function
public
System.Net.Socket.pas
System.Net.Socket.hpp
System.Net.Socket TSocket


説明

着信接続要求の受け入れを開始するようにソケットを構成します。

Listen を呼び出したあとは、Accept を呼び出して着信接続要求を実際に受け入れ、そのクライアントとの通信チャネルを確立する必要があります。

ソケットのリスン先となるエンドポイントを指定するには、パラメータの次のような組み合わせのうち、いずれかを渡す必要があります。

  • エンドポイントEndpoint
  • IP アドレス(Address)とサービス(Service)。Port として空のワードを渡してもかまいません。Service を使用してポートが決定されるからです。
  • IP アドレス(Address)とポート(Port)。Service として空文字列を渡してもかまいません。そうでない場合は、指定されたサービス名を使用して、使用するポートが決定され、指定されたポートは無視されます。

QueueSize は、保留中の接続が格納されるキューの最大長を指定します。詳細については、MSDN で「listen 関数」を参照してください。キューの推奨最大長(デフォルト)には -1 を使用します。

例外

Bind を呼び出すと、次の例外が発生する可能性があります。

例外 Exception.Message シナリオ

ESocketError

新しいソケットを作成できません

開いているソケットでリスンできません

  • 既に開いているソケットでリスンできません。前に次のいずれかのメソッドを呼び出した結果、ソケットが開かれたと考えられます。

ネットワーク ソケット エラー: <エラー メッセージ> (<エラー コード>)、API 'bind'

ネットワーク ソケット エラー: <エラー メッセージ> (<エラー コード>)、API 'listen'

ネットワーク ソケット エラー: <エラー メッセージ> (<エラー コード>)、API 'socket'

関連項目