PHP:echo无法在无限循环中工作

时间:2017-12-15 07:54:05

标签: php

我想在服务器端使用$input从客户端显示echo

PHP服务器:

<?php

$socket = stream_socket_server("tcp://127.0.0.1:8000", $errno, $errstr);
if (!$socket) {
    echo "$errstr ($errno)<br />\n";
} else {
    while ($conn = stream_socket_accept($socket)) {
        $input = fread($conn, 1024);
        echo $input;

        fwrite($conn, 'Wait for a while... ' . $input);
        fclose($conn);
    }
    fclose($socket);
}

fwrite()成功将$input写入客户端,但echo $input未显示任何内容。

1 个答案:

答案 0 :(得分:4)

您应该使用flush()

<?php

$socket = stream_socket_server("tcp://127.0.0.1:8000", $errno, $errstr);
if (!$socket) {
    echo "$errstr ($errno)<br />\n";
} else {
   while ($conn = stream_socket_accept($socket)) {
       $input = fread($conn, 1024);
       echo $input;
       ob_flush();
       flush();
       fwrite($conn, 'Wait for a while... ' . $input);
       fclose($conn);
  }
  fclose($socket);
}