socket_listen
(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
socket_listen — ソケット上で接続待ち(listen)する
説明
ソケット socket
が
socket_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() - 与えられた addrinfo から、ソケットを作成してバインドする
User Contributed Notes 1 note
<?php
// create for tcp
$sock = socket_create(AF_INET, SOCK_STREAM, getprotobyname('tcp'));
socket_bind($sock, '127.0.0.1',5000);
socket_listen($sock,1);
sleep(20);
?>
<fruit>
netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:5000 0.0.0.0:* LISTEN 1839/php