2

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

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

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

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

ただし、サーバーから新しいデータを読み取るために使用する fgets() は、何か新しいものが到着するまでスクリプトを一時停止します。そのため、サーバーから何か新しいものが到着するまで、入力テキスト ファイルを読み取ることができません。これは良くありません。

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

1 に答える 1

0

試す:stream_set_blocking($handle,0)

スレッドはphpのみのフォークではサポートされていませんが、より多くのリソースを消費し、OSのサポートが必要です(Windowsはサポートしていません)。

phpとスレッドを使用したい場合は、 phlangerを調べることができます。これは.netのphp(再)実装です(したがって、ターゲットプラットフォームに.netまたはmonoが必要です)。

于 2012-09-19T22:57:16.830 に答える