我试图在PHP中构建一个小小的命令行IRC客户机,因为我厌倦了让您通过20个GUI弹出窗口/窗口来连接到新服务器的所有客户端。
到目前为止,一切都正常工作,但是我只能使用主循环将输入命令/消息发送到服务器,并从它接收新的数据。
由于PHP对多任务不太友好,所以我有两个独立的PHP脚本同时运行:
输入读取器可以在其中输入我的消息-它将当前消息存储在文本文件中。服务器侦听器/写入器,它接收新数据,读取并清除输入读取器存储我当前命令的文本文件。
但是,用于从服务器读取新数据的fget()会暂停脚本,直到新的数据出现。因此,输入的文本文件在从服务器收到新的内容之前无法读取,这是不好的。
发布于 2012-09-19 22:57:16
尝试:stream_set_blocking($handle,0)
在php中不支持线程,只支持分叉,但是这会消耗更多的资源,并且需要os支持(Windows不支持它)。
如果您想使用php和线程,可以查看弗兰格 --这是.net的php (Re)实现(因此您需要目标平台上的.net或mono )。
https://stackoverflow.com/questions/11603676
复制相似问题