PHP ソケットについて
私は最近 PHP ソケットを学習しており、関数の実装を通じてソケットの理解をテストしたいと考えています。
1. クライアントはサーバーにデータを送信します
2. サーバーはクライアントから送信されたデータを受信し、クライアントに応答を送信します
3. クライアントはサーバーから送信された応答情報を表示します
以下はコードです
サーバー.php:
//ソケットを設定します
$commonProtocol = getprotobyname("tcp");
$socket =ソケット_create(AF_INET, SOCK_STREAM, $commonProtocol);
socket_bind($socket, 'localhost', 1234);
socket_listen($socket);
//バッファを初期化します
$buffer = "データなし";
while(true) {
//このソケットで受信する接続を受け入れます
$connection =ソケット_accept($socket);
printf("ソケット接続rn");
// バッファーに何かがあるかどうかを確認します
$buffer=socket_read($connection, 2048, PHP_NORMAL_READ);
echo "クライアントから受信しました ".$buffer;
$ResponseToClient=$buffer." はサーバーによって処理されます!n";
socket_write($connection, $ResponseToClient);
echo "クライアントへの応答!n ";
}
?>
client.php:
//ソケットを作成して接続します
$socket =ソケット_create(AF_INET, SOCK_STREAM, SOL_TCP);
$connection =socket_connect($socket,'localhost', 65500);
$i=0;
$s=0;
while(true)
{
echo "データ送信中".$i ."n";
$SendDataToServer=socket_write($socket, "server".$s );
$ResponseFromServer=socket_read($socket, 2048, PHP_NORMAL_READ);
echo "受信しました".$ResponseFromServer."サーバー n から";
}
?>
問題は、クライアントは送信中の data0
のみを表示することです。
サーバー側ではSocket Connected
のみが表示されます
他には何も表示されません。クライアントが常にデータを送信し、サーバーがデータを処理してクライアントに返すという私の期待を満たしていません。 アドバイスをお願いします。