ホームページ  >  記事  >  バックエンド開発  >  PHPソケットの問題を解決する方法

PHPソケットの問題を解決する方法

WBOY
WBOYオリジナル
2016-06-13 12:46:28729ブラウズ

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
のみが表示されます 他には何も表示されません。クライアントが常にデータを送信し、サーバーがデータを処理してクライアントに返すという私の期待を満たしていません。 アドバイスをお願いします。

ソケット PHP
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。