我有一个PHP套接字应用程序,它连接到服务器并发送一些数据,
我需要将此脚本扩展到发送(写入)和侦听以从服务器重播
我在socket_write()
之后尝试使用socket_read()
但它挂起脚本。
对此有什么想法吗?
socket_read()
正在阻塞。它一直挂着,直到有什么可读的。此外,您需要反复调用它,直到它返回一个空字符串(连接到目前为止得到的内容),然后才能给出完整的答复。
套接字操作就是这样工作的:
socket_write($socket, 'request');
$response = '';
do {
$buffer = socket_read($socket, $number_of_bytes_to_read);
$response .= $buffer;
} while (!empty($buffer));
对于解决方法,请在写入后添加sleep(1)
,然后开始读取。
首先检查写入操作的返回值。返回写入的字节数,错误时返回FALSE。