我正在使用PHP套接字编程并且能够将数据写入打开套接字,但是我必须等待很长时间(或者卡住它)才能获得响应,或者一段时间得到错误,例如“超过30秒的最大执行时间超过行数”这个代码放在fgets($ fp,128),我检查服务器它似乎已按预期发送响应但我没有得到为什么我无法得到响应。以下代码使用套接字连接和读取数据。
functon scoket_connection() {
$fp = fsockopen(CLIENT_HOST,CLIENT_PORT, $errno, $errstr);
fwrite($fp,$packet);
$msg = fgets($fp, 128);
fclose($fp)
return $msg;
}
任何想法???
答案 0 :(得分:1)
您的客户端是否与服务器位于不同的平台上?当我说不同时,我的意思是Windows / Linux / Mac。这些都有不同的行结尾。 fgets()应该读取一行,这意味着它希望在返回任何内容之前找到某个行结束。如果一个系统正在发送例如\ n而另一个系统需要\ r \ n它可能会导致此问题。