根据文档,
这个函数的行为改变了吗?还是我做错了什么?
socket_read()
在远程主机关闭连接时应该返回FALSE
,当没有更多数据可读时返回空字符串''
。然而,在我的测试中,即使关闭了远程主机的连接,它也从未返回FALSE
。以下是相关代码:$data = '';
do {
$read = socket_read($socket, 1024);
if ($read === FALSE) {
throw new SocketDisconnectException();
}
$data .= $read;
} while ($read !== '');
SocketDisconnectException
从未被抛出,即使我断开了远程主机连接。 我已经反复检查过,没有捕获并丢弃异常,甚至在条件语句中加入了 echo
和 exit
作为健全性检查。这个函数的行为改变了吗?还是我做错了什么?