我fsockopen
用来连接到 OpenVAS 管理器并发送 XML。我正在使用的代码是:
$connection = fsockopen('ssl://'.$server_data['host'], $server_data['port']);
stream_set_timeout($connection, 5);
fwrite($connection, $xml);
while ($chunk = fread($connection, 2048)) {
$response .= $chunk;
}
然而,在读取前两个数据块后,PHP 挂在 fread 上,并且在 5 秒后没有超时。我尝试过使用stream_get_contents
,它给出了相同的结果,但是如果我只使用一个 fread,它可以正常工作,只是我想阅读所有内容,无论长度如何。
我猜,这是 OpenVAS 的一个问题,它不会像 PHP 期望的那样结束流,但这是在黑暗中的一枪。如何阅读流?