リッスン サーバーにデータを送信し、PHP のソケットを使用して応答を取得する必要があります。
正常に動作します (受信者は必要なものを取得します) が、サーバーの応答を取得しようとすると、うまくいきません。それはただ何度も何度も何度も繰り返されます... 終わりがないように見えwhile
ますが、なぜですか? (サーバー側のチームでチェックし、応答が私に提出されていると言います)。
私はPhpを使用していますが、サーバーはc ++です(これが問題かもしれないと聞きました)
コード:
ini_set('max_execution_time', 36000); // to test the shile for a longer time, but aparentry responce goes right away
$fp = fsockopen("192.168.x.x", 9999, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
echo "Connected<br />\n";
$out = chr(11)."MSH|....some fields there....|".chr(28).chr(13); //chr(x) are ruquired by serwer
if ( fputs($fp, $out, strlen($out)) )
{
echo "<br />\nwriting message<br />\n";//if I eomment the while below this will show without problem
while (!feof($fp)) {
echo fgets($fp, 1024);
}//just goes and goes... never finding end of file (I gues)
}
fclose($fp);
}
PHPでソケットを開くために3つの異なる方法を使用しましたが、それらはすべて同様の問題を抱えているようです。何が問題なのかをテストするにはどうすればよいですか?