2

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

到目前为止一切正常,但我被困在将我的输入命令/消息发送到服务器并从中接收新数据的主循环中。

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

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

但是,我用来从服务器读取新数据的 fgets() 会暂停脚本,直到有新数据到来。因此,只有在服务器有新内容到达之前,输入文本文件才能被读出,这是不好的。

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

1 回答 1

0

尝试:stream_set_blocking($handle,0)

仅 php分叉不支持线程,但会占用更多资源并需要操作系统支持(Windows 不支持)。

如果您想使用 php 和线程,您可以查看phlanger - 这是 .net 的 php(重新)实现(因此您需要在目标平台上使用 .net 或 mono)。

于 2012-09-19T22:57:16.830 回答