Php TCP连接只以一种不接收的方式发送数据

Php TCP连接只以一种不接收的方式发送数据,php,tcp,tcpsocket,ttcpserver,Php,Tcp,Tcpsocket,Ttcpserver,我已经为此做了足够多的努力:我正在尝试编写一个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 "Som

我已经为此做了足够多的努力:我正在尝试编写一个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中的数据。我没有控制远程主机,我只能看到它已接收数据并生成响应。你能告诉我,我到底错在哪里吗?

你可能希望尝试一种更惯用的阅读循环;我从以下地址窃取了此代码:

嘿,它在while时超时($buffer=fgets($fp,4096))!==false)
while (($buffer = fgets($fp, 4096)) !== false) {
    echo $buffer;
}
if (!feof($fp)) {
    echo "Error: unexpected fgets() fail\n";
}
fclose($fp);