在套接字关闭之前,我对套接字的 fwrite 不会被刷新。如何改变?我希望它在每次 fwrite 后刷新。
我试过:
1) flush()
2) fflush()
3) ob_implicit_flush(true);
这些都不起作用,我仍然必须退出 php 才能让我的套接字接收数据。
包括一些示例代码,有什么问题吗?
while($clientSocket = socket_accept($this->serviceConnection))
{
while( $clientMessage = socket_read($clientSocket, 1024) )
{
echo 'Relaying message to server: ' . $clientMessage;
if( !fwrite($this->Connection, $clientMessage) )
echo 'Error writing to server';
fflush($this->Connection);
}
socket_close($clientSocket);
}
最佳答案
有一个功能! fflush($rc)
你确定你有正确的资源作为参数吗?
编辑
好的。查看您正在使用 socket_* 函数的代码。您需要使用 fsockopen、fwrite、fflush、fsockclose。您的代码应该工作相同,但您将能够刷新输出。查看示例 in the php manual了解更多详情。
关于php - 在套接字关闭之前,我对套接字的 fwrite 不会被刷新。如何改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2917584/