System.Net.Socket.TSocket.Listen
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 | シナリオ |
|---|---|---|
|
新しいソケットを作成できません |
| |
|
開いているソケットでリスンできません |
| |
|
ネットワーク ソケット エラー: <エラー メッセージ> (<エラー コード>)、API 'bind' |
| |
|
ネットワーク ソケット エラー: <エラー メッセージ> (<エラー コード>)、API 'listen' |
| |
|
ネットワーク ソケット エラー: <エラー メッセージ> (<エラー コード>)、API 'socket' |
|