PHPプログラミングでは、 Stream_Socket_Server関数は、ストリームベースのサーバーソケットを作成するための強力なツールです。これにより、プログラムはネットワークポートをリッスンし、クライアントが接続するのを待ち、それらの接続を処理できます。 sock_createやsock_bindなどの従来の機能と比較して、 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サーバーを作成します
カスタムネットワークプロトコルサーバーを実装します
ソケット通信のバックエンドサービスとして