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' |
|