<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($socket, '127.0.0.1', 100);
socket_listen($socket);
$client = socket_accept($socket);
socket_write($client, 'output');
sleep(10);
socket_close($client);
socket_close($socket);
?>
当我去终端并输入时,nc localhost 100
我会立即得到输出,如我所愿。
但是当我localhost:100
在浏览器的地址栏中输入“ ”时,10秒后会显示单词输出。
但!
如果我将代码更改为:
<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($socket, '127.0.0.1', 100);
socket_listen($socket);
$client = socket_accept($socket);
$str = '';
for ($index = 0; $index < 4096; $index++) {
$str .= ' ';
}
socket_write($client, $str);
socket_write($client, 'output');
sleep(10);
socket_close($client);
socket_close($socket);
?>
发送请求后,我立即在浏览器上获得输出(以及之前的所有空格)。
如何在不发送大量数据的情况下立即在浏览器中获取输出?