我有一个PHP套接字应用程序连接到服务器并发送一些数据,
我需要将此脚本扩展为发送(写入)并监听,以便从服务器重播
我在socket_read()
socket_write()
但挂起脚本。
对此有何看法?
答案 0 :(得分:2)
socket_read()
正在阻止。它会挂起,直到有东西要读。此外,您需要反复调用它,直到它返回一个空字符串(连接到目前为止所得到的内容),然后才会给出完整的回复。
这是套接字操作的工作方式:
socket_write($socket, 'request');
$response = '';
do {
$buffer = socket_read($socket, $number_of_bytes_to_read);
$response .= $buffer;
} while (!empty($buffer));
答案 1 :(得分:1)
解决方法在写入后添加sleep(1)
,然后开始阅读。
首先检查写入操作的返回值。返回写入的字节数,错误时返回FALSE。