PHP fgets“noblock”?

时间:2010-03-10 20:27:21

标签: php irc

我正在尝试用PHP构建一个小命令行IRC客户端,因为我厌倦了所有那些让你点击20个GUI弹出窗口/窗口连接到新服务器的客户端。

到目前为止,一切正常,但我仍然坚持将主要循环发送到服务器并从中接收新数据。

由于PHP不是多任务友好的,我有两个同时运行的自主PHP脚本:

我可以输入消息的输入阅读器 - 它将当前消息存储在文本文件中。 服务器侦听器/写入器,它接收新数据并读取和清除输入读取器存储当前命令的文本文件。

但我使用fgets()从服务器pauses the script waiting until something new arrives读取新数据。 因此,在从服务器到达新内容之前,无法读取输入文本文件,这是不好的。

  • 是否有一些特殊的功能/选项来帮助我?

1 个答案:

答案 0 :(得分:2)

您需要查看流,尤其是stream_set_blocking

编辑:事实上,你可以摆脱两个进程,并在一个进程中完成所有事情。使用非阻塞读取,你应该没问题。