0

新しいサーバーに接続するために 20 の GUI ポップアップ/ウィンドウをクリックしなければならないすべてのクライアントにうんざりしているので、PHP で小さなコマンドライン IRC クライアントを構築しようとしています。

これまでのところすべてが機能していますが、入力コマンド/メッセージをサーバーに送信し、サーバーから新しいデータを受信するメインループに行き詰まっています。

PHP はマルチタスクにあまり適していないため、2 つの自律型 PHP スクリプトを同時に実行しています。

メッセージを入力できる入力リーダー - 現在のメッセージをテキスト ファイルに保存します。新しいデータを受信し、入力リーダーが現在のコマンドを保存したテキスト ファイルを読み取ってクリアするサーバー リスナー/ライター。

ただしfgets()、サーバーから新しいデータを読み取るために使用しますpauses the script waiting until something new arrives。そのため、サーバーから何か新しいものが到着するまで、入力テキスト ファイルを読み取ることができません。これは良くありません。

  • 私を助けるための特別な機能/オプションはありますか?
4

1 に答える 1

2

ストリーム、特にを見る必要がありますstream_set_blocking

編集:実際には、2つのプロセスを持つことを取り除き、1つのプロセスですべてを行うことができます。ノンブロッキング読み取りを使用すれば、問題ないはずです。

于 2010-03-10T20:28:48.500 に答える