0

接続をリッスンして受信データを出力するスクリプトが必要です。次のコードを試しました:

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

問題は、クライアントが接続してデータを送信するときに、ページに何も表示されないことです。のようなバッファリング防止手法を使用したり、php.iniob_implicit_flush()で設定output_buffering = Offしたりしても役に立ちません。ブラウザでのバッファリングがこれにつながる可能性があります。他に試してみるべきことはありますか?

4

1 に答える 1

1

思ったとおり、接続が閉じられたときにのみ出力を表示するChromeブラウザーが原因で発生しました。残念ながら、Chrome でこの動作を変更する簡単な方法はないようです。

于 2012-07-02T18:05:33.257 に答える