2010-03-10 69 views
0

我想在PHP中構建一個小命令行IRC客戶端,因爲我厭倦了所有那些客戶端,通過點擊20個GUI彈出窗口/窗口來連接到新服務器。PHP fgets「noblock」?

一切工作到目前爲止,但我堅持主循環發送我的輸入命令/消息到服務器,並從它接收新的數據。

由於PHP是不是非常的多任務型我有在同一時間運行兩個獨立的PHP腳本:

輸入讀者在那裏我可以進入我的消息 - 它在一個文本文件中存儲當前消息。 服務器監聽器/寫入器接收新的數據和讀取並清除其中,輸入讀者存儲我目前的命令,在文本文件中。

然而fgets(),我用從服務器讀取pauses the script waiting until something new arrives新的數據。 因此,輸入的文本文件不能被讀出,直到從服務器得到新的東西,這是不好的。

  • 是否有一些特殊的功能/選項可以幫助我?
+0

我可以推薦'irssi'嗎? http://irssi.org – 2010-03-10 20:43:52

回答

2

您需要查看流,尤其是stream_set_blocking

編輯:實際上,你可以擺脫有兩個過程,並在一個過程中做所有事情。使用非阻塞讀取,你應該沒問題。