我试图在一个在PHP中运行10次的while循环中打印UDP消息。问题是它等待循环完成然后消息被打印10次但我想在循环的每次迭代中打印它而不是在循环完成时。这是我的代码。
<?php
$socket = socket_create(AF_INET,SOCK_DGRAM,SOL_UDP);
socket_bind($socket,$ip_address,$port);
$i = 0;
while($i < 10)
{
$i++;
$FROM = '';
$PORT = 0;
socket_recvfrom($socket,$buffer,1024,0,$from,$PORT);
echo "Receiving $buffer from IP $FROM and Port $PORT", PHP_EOL);
flush();
sleep(1);
}
?>
答案 0 :(得分:1)
在您致电 flush()后,请致电 ob_flush() 以清除输出缓冲区。
此函数将发送输出缓冲区的内容(如果有)
如果从浏览器访问,则可能需要在网页顶部添加header( 'Content-type: text/html; charset=utf-8' );
脚本开头的 ob_start()也会打开输出缓冲。