【PHP8.x】pfsockopen関数の使い方
pfsockopen関数の使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
pfsockopen関数は、永続的なインターネットソケットまたはUnixドメインソケット接続を確立する処理を実行する関数です。この関数は、基本的な動作においてfsockopen()関数と非常によく似ていますが、最も大きな違いは接続を「永続化」する点にあります。通常のfsockopen()では、PHPスクリプトの実行が終了すると確立した接続も閉じられます。しかし、pfsockopen()で確立された接続は、スクリプト終了後もすぐには閉じられずに保持され、次に同じホスト、ポート、タイムアウトで接続要求があった場合に、その保持されている接続が再利用されます。これにより、毎回新しい接続を確立するための時間やシステムリソースのオーバーヘッドを削減でき、特に頻繁に同じサーバーへ接続するようなアプリケーションのパフォーマンスを向上させることができます。接続先のホスト名やポート番号などを引数として指定し、接続に成功した場合は、その後の通信に利用できるファイルポインタを返します。接続に失敗した場合はfalseを返すため、戻り値を確認して適切なエラー処理を行うことが重要です。
構文(syntax)
1pfsockopen( 2 string $hostname, 3 int $port = -1, 4 ?int &$error_code = null, 5 ?string &$error_message = null, 6 ?float $timeout = null 7): resource|false
引数(parameters)
string $hostname, int $port = -1, ?int &$error_code = null, ?string &$error_message = null, ?float $timeout = null
- string $hostname: 接続先のホスト名またはIPアドレスを指定します
- int $port = -1: 接続先のポート番号を指定します。デフォルトは -1 で、プロトコルによって異なります
- ?int &$error_code = null: エラーが発生した場合に、エラーコードが格納される整数型の変数への参照を指定します
- ?string &$error_message = null: エラーが発生した場合に、エラーメッセージが格納される文字列型の変数への参照を指定します
- ?float $timeout = null: 接続試行のタイムアウト時間を秒単位で指定します
戻り値(return)
resource|false
成功した場合、ソケットリソースを返します。失敗した場合は false を返します。