我是套接字的新手,我试图为用户显示一些数据告诉他等待,而套接字是从服务器获取数据,我也使用了ob_flush,flush和其他一些功能,但是他们没有工作,文本“正在加载......请等待”仅在套接字关闭后出现,这是我的代码
$fp = fsockopen("tcp:.......", port num, $errno, $errstr);
if (!$fp)
{
echo "ERROR: $errno - $errstr<br />\n";
}
else
{
echo "Loading .... Please Wait";
flush();
fwrite($fp, $num . "\n");
ini_set('max_execution_time', 600);
$cmd_res = fread($fp, 1000);
echo $cmd_res;
fclose($fp);
}
如果您有任何解决方案,请帮助我。提前致谢
答案 0 :(得分:0)
尝试将回车符添加到fwrite行的终止处:
fwrite($fp, $num . "\r\n");
套接字将采用此组合的新行。
答案 1 :(得分:0)
很少有建议让它发挥作用:
确保在php.ini中关闭了输出缓冲:
output_buffering = Off
zlib.output_compression = Off
结束任何活动输出缓冲缓冲区处于活动状态:
while(ob_get_level()){
ob_end_clean();
}
禁用任何可以缓冲响应的http服务器模块(即:apache中的mod_gzip)
其他浏览器在显示之前可能需要接收更多数据,请使用一些空格:
echo str_repeat(" ",1024)."\n";