PHP套接字编程socket_read + socket_write()

时间:2011-06-20 21:00:35

标签: php sockets

我有一个PHP套接字应用程序连接到服务器并发送一些数据,

我需要将此脚本扩展为发送(写入)监听,以便从服务器重播

我在socket_read()

之后尝试使用socket_write()

挂起脚本。

对此有何看法?

2 个答案:

答案 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。