【问题标题】:Socket server displaying received data on the pageSocket 服务器在页面上显示接收到的数据
【发布时间】:2012-06-30 04:57:50
【问题描述】:

我需要一个脚本来监听连接并输出接收到的数据。我试过以下代码:

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 也无济于事。浏览器中的缓冲可能会导致这种情况吗?还有什么我应该尝试的吗?

【问题讨论】:

    标签: php sockets buffering


    【解决方案1】:

    正如我所想,这是因为 Chrome 浏览器仅在连接关闭时才显示输出。不幸的是,似乎没有简单的方法可以在 Chrome 中改变这种行为。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-24
      • 1970-01-01
      • 1970-01-01
      • 2021-07-30
      • 2019-11-15
      • 2020-02-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多