現在の位置: ホーム> 最新記事一覧> phpのstream_socket_server関数の基本的な使用に関する詳細な説明

phpのstream_socket_server関数の基本的な使用に関する詳細な説明

gitbox 2025-06-07

PHPプログラミングでは、 Stream_Socket_Server関数は、ストリームベースのサーバーソケットを作成するための強力なツールです。これにより、プログラムはネットワークポートをリッスンし、クライアントが接続するのを待ち、それらの接続を処理できます。 sock_createsock_bindなどの従来の機能と比較して、 stream_socket_serverはより高いレベルのカプセル化を提供し、ネットワークサービスの構築プロセスを簡素化します。

stream_socket_serverとは何ですか?

Stream_Socket_Serverは、サーバーソケットを作成し、指定されたアドレスとポートを聴くPHPに組み込まれた機能です。クライアント接続を受け入れるために使用できるストリームリソースを返します。この関数は、TCP、UDP、UNIXドメインソケットなど、さまざまなプロトコルをサポートしています。

基本的な構文

$server = stream_socket_server("tcp://gitbox.net:8080", $errno, $errstr);
if (!$server) {
    echo "サーバーを作成できません: $errstr ($errno)\n";
} else {
    echo "サーバーの作成に成功しました,ポートを聞いています8080\n";
}

パラメーターの説明

  • アドレスパラメーター:通常、プロトコルタイプ(TCP、UDPなど)の組み合わせに続いて:// IPアドレスとポート番号。たとえば、 tcp://gitbox.net:8080は、 tcpプロトコルがgitbox.netホストのポート8080に耳を傾けることを意味します。

  • エラー番号パラメーター:変数を渡してエラーコードをキャプチャします。

  • エラー文字列パラメーター:エラー情報をキャプチャするために変数に渡されます。

基本的な使用例

次の例は、ネイティブポート8080に耳を傾け、クライアント接続を受信し、データを読み取り、応答を返す単純なTCPサーバーを示しています。

 <?php
$address = "tcp://gitbox.net:8080";
$server = stream_socket_server($address, $errno, $errstr);

if (!$server) {
    die("サーバーの起動に失敗しました: $errstr ($errno)\n");
}

echo "サーバーが開始されます,モニター $address\n";

while ($conn = stream_socket_accept($server)) {
    $request = fread($conn, 1024);
    echo "リクエストを受け取りました: $request\n";

    $response = "HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\n\r\nHello from PHP server!";
    fwrite($conn, $response);
    fclose($conn);
}

fclose($server);
?>

説明します

  • Stream_Socket_acceptを使用して、クライアント接続を待機するブロックをブロックします。

  • 接続が発生したら、クライアントデータを読み取り、簡単な処理後に応答します。

  • サーバーは継続的に実行され、複数のリクエストを処理できます。

適用可能なシナリオ

  • シンプルなHTTPサーバーを作成します

  • カスタムネットワークプロトコルサーバーを実装します

  • ソケット通信のバックエンドサービスとして