我需要一个监听连接和输出接收数据的脚本。我试过以下代码:
header('Content-Type: text/plain; charset=utf-8');
$socket = stream_socket_server("tcp://0.0.0.0:8000", $errno, $errstr);
if (!$socket) {
echo "$errstr ($errno)\n";
} else {
while ($conn = stream_socket_accept($socket)) {
$data = fread($conn, 100);
var_dump($data);
flush();
fclose($conn);
}
fclose($socket);
}
基于这个例子:php.net/manual/en/function.stream-socket-server.php
问题是当客户端连接并发送一些数据时,页面上没有任何内容。使用像ob_implicit_flush()
这样的缓冲预防技术,甚至在php.ini中设置output_buffering = Off
都无济于事。浏览器中的缓冲可能导致这种情况,还有什么我应该尝试的吗?
答案 0 :(得分:1)
正如我所想,这是因为Chrome浏览器仅在连接关闭时显示输出。不幸的是,似乎没有简单的方法可以在Chrome中更改此行为。