ホームページ >バックエンド開発 >PHPチュートリアル >PHPソケットC/S通信サーバがクライアント情報を受信できません

PHPソケットC/S通信サーバがクライアント情報を受信できません

WBOY
WBOYオリジナル
2016-06-23 13:07:33813ブラウズ

//クライアントソケット接続を確立します
$socket =ソケット_create(AF_INET, SOCK_STREAM, SOL_TCP);
//サーバーソケットに接続します
$connection =ソケット_connect($socket,'192.1 68.142.27', 10008) );
//サーバーに送信される情報。
$info='hello world';
while($connection)
stop_write($socket, "$info");
}
?>情報ですが、'hello world' の連続です

ブレークを追加すると、メッセージがまったく受信されなくなります

初心者の方、親切な方が回答していただければ幸いです。ありがとう!




ディスカッションへの返信 (解決策) ループを抜けてプログラムを終了しましたが、サーバーから返されたデータのコードを受信しませんでした
それで、どうやってわかるのですか?サーバーがデータを受信しなかったということですか? データの


ブレークは、プログラムが終了するとデータを受信できなくなるため、削除することしかできません。

受信コードは次のとおりです:

$tcp = getprotobyname("tcp");

// サーバー側ソケットを確立し、通信ノードとも呼ばれるソケットを作成して返します。一般的なネットワーク接続は 2 つのソケットで構成され、1 つはクライアント側で実行され、もう 1 つはサーバー側で実行されます。

$socket =ソケット_create(AF_INET, SOCK_STREAM, $tcp);
//ここでバインドされるIPはLAN IPとして記述される必要があります。127.0.0.1と記述されると、クライアントはサーバーに接続できません。
socket_bind($socket, '192.168.142.27', 10008);
// 待機ポート
socket_listen($socket);
$data='';
while ($connection)
{
$data=@socket_read($connection,1024,PHP_NORMAL_READ);
printf("Buffer: " . $data . "n");

; while ループが一定の回数を超えると、受信側は一連の「hello」を受信しますが、ループ回数がこの値未満の場合、受信側はデータを受信しないことがわかりました(私の値はこれです)時間は204です)、状況はどうですか?

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