【PHP8.x】stream_socket_pair関数の使い方

作成日: 更新日:

stream_socket_pair関数は、同一ホスト上のプロセス間で双方向通信が可能なソケットのペアを作成する関数です。この関数は、主に親プロセスと子プロセスの間でデータを安全かつ効率的にやり取りするプロセス間通信(IPC: Inter-Process Communication)のメカニズムとして利用されます。

実行されると、互いに接続された2つのストリームリソースを生成し、これらを要素として持つ配列を返します。この配列の各要素は、それぞれが独立したソケットストリームとして機能し、一方に書き込まれたデータはもう一方から読み出すことができます。これにより、双方向のデータの送受信が実現されます。

引数として、ソケットのドメイン(例: UNIXドメイン)、タイプ(例: ストリームソケット)、プロトコルを指定することで、作成されるソケットペアの特性を定義します。成功した場合は2つのストリームリソースを含む配列を返し、失敗した場合はfalseを返します。返されたストリームリソースは、fread()fwrite()といった標準的なPHPのストリーム関数を用いて、データの読み書きを行うことができます。

基本的な使い方

構文(syntax)

stream_socket_pair(int $domain, int $type, int $protocol): array|false

引数(parameters)

int $domain, int $type, int $protocol

  • int $domain: 作成するソケットのドメインを指定する整数 (例: AF_UNIX、AF_INET)。
  • int $type: 作成するソケットのタイプを指定する整数 (例: SOCK_STREAM、SOCK_DGRAM)。
  • int $protocol: 作成するソケットのプロトコルを指定する整数 (通常は0)。

戻り値(return)

array|false

配列または false が返されます。成功した場合、配列の最初の要素には読み取り用のソケット、2 番目の要素には書き込み用のソケットが含まれます。失敗した場合は false が返されます。