0

私はこれで十分に戦ってきました: 私は TCP クライアント コードを書こうとしていますが、このコードはサーバーにデータを送信し、応答を取得する必要があります。クライアントコードは次のとおりです。

<?php
$str3 = "Test Data";
echo $str3;
$fp = stream_socket_client("tcp://192.168.1.26:12000", $errno, $errstr, 30);
if (!$fp) 
{
    echo "$errstr ($errno)<br />\n";
    echo "Some problem! </br>";
} 

else 
{   
    fwrite($fp,$str3);
    $str = "";

    while ($str == "")
    {
       $str = fgets($fp, 1024);
    }

    fclose($fp);
    echo $str;
}
?> 

リモート ホストもデータを受信し、応答します。残念ながら、$str のデータを取得できません。私はリモート ホストを制御しておらず、データを受信して​​応答を生成したことしか確認できません。正確にどこが間違っているのか、提案できますか?

4

1 に答える 1

2

より慣用的な読み取りループを試してみたいと思うかもしれません。http://www.php.net/manual/en/function.fgets.phpからこのコードを盗みました:

while (($buffer = fgets($fp, 4096)) !== false) {
    echo $buffer;
}
if (!feof($fp)) {
    echo "Error: unexpected fgets() fail\n";
}
fclose($fp);
于 2012-04-23T05:57:12.563 に答える