socket_listen

ソケット上で接続待ち(listen)する

説明

bool socket_listen(Socket $socket, int $backlog = 0)

ソケット socketsocket_create を用いて作成され、 socket_bind で名前が付けられた後、 socket 上の接続要求を待つための通信ができるようになります。

socket_listen は、ソケットが SOCK_STREAM 型または SOCK_SEQPACKET 型の場合のみ利用可能です。

パラメータ

socket

socket_create または socket_addrinfo_bind で作成した 有効な Socket クラスのインスタンス。

backlog

最大 backlog 個の接続を処理用の キューで待ち受けることが可能です。もし待ちうけ用のキューが いっぱいになった場合、クライアントでは ECONNREFUSED の通知とともにエラーが発生します。あるいは、もし基盤となるプロトコルが リクエストの再送をサポートしている場合、再試行が成功するまで リクエストは無視されます。

注意:

backlog パラメータに指定できる値の最大値は プラットフォームに大きく依存します。Linux では、最大値は SOMAXCONN に切り詰められます。win32 では、 もし SOMAXCONN を渡した場合、backlog の 最大値を適切な値に設定する責任はサービスの 提供側が負います。 このプラットフォームでは、実際の backlog の値を見つける標準的な 手段が提供されていません。

戻り値

成功した場合に true を、失敗した場合に false を返します。 エラーコードは socket_last_error で取得可能で、このコードを socket_strerror に指定することにより エラーの内容を文字列として取得可能です。

変更履歴

バージョン 説明
8.0.0 socket は、Socket クラスのインスタンスになりました。 これより前のバージョンでは、リソース型でした。

参考

  • socket_accept
  • socket_bind
  • socket_connect
  • socket_create
  • socket_strerror
  • socket_addrinfo_bind