PHP套接字编程socket_read+socket_write()


PHP socket programming socket_read + socket_write()

我有一个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。