php - 在套接字关闭之前,我对套接字的 fwrite 不会被刷新。如何改变?

标签 php networking sockets

在套接字关闭之前,我对套接字的 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/

相关文章:

java - JDK 1.7 DatagramSocket 未正确绑定(bind) IP 和端口

java - NIO 和异步 IO 选择

java - 如何使用 .Net 以外的技术连接并交换 2010 服务器?

php - 在PHP中将两个数组元素合并为一个数组元素

c++ - FileServer 可以避免高 CPU 使用率吗?

Python MQTT 异常处理

python - Socket收不到数据?客户端是使用 Boost.asyio 库编写的。服务器是用python写的

php - Docker 默认情况下不提供服务

php - 在附件中发送 pdf (Laravel Mail)

image - flutter : Display Local Image when Network Image not found or error fetching it?