私はPHPで、さまざまなリモートクライアントと通信する小さなサーバーデーモンを開発しています。しかし、同じマシン上で動作する別のデーモンは、できるだけ早く最初のデーモンと通信する必要がありますが、数百KBのデータを絶えず送信していることがあります。私はかなり肯定的ですが、私はこれら2つのデーモンの間にtcp接続を使用したいと思うでしょうが、それは私がいくつかのアドバイスが必要なところです。今すぐあなたが尋ねる前に、私は単純に両方を同じデーモンに組み合わせることはできません。なぜなら、2番目はJava、.net、C++、Python、Rubyなどの複数の言語のいずれかで書かれているからです。 PHPをtcp接続を使わずに(あるいは自分のニーズに合わないシステムコールを使って)、パフォーマンスを犠牲にすることなく、PHPを他の言語と話せるようにするために、私はすべて耳を傾けていますが、私は本当にそれを行うのクリーンでシンプルな方法を見つけることはできません - 少なくとも1つのサイズのすべてのファッションにファッションにはない。他のプロセスが同じマシン上にあるのでPHPデーモンと話す
答えて
、proc_open()
の使用について、そしてあなただけの書き方/パイプ(STDIN/STDOUTなど)に作成さから読みますか?
これはsystem()
/popen()
コールと似ていますが、他のプロセスの読み書きが可能で、もちろんTCPソケットのオーバーヘッドは避けられます。
恐ろしい!私はそれを試してみましょう。あなたが1回の書き込み/読み取り操作で約1MBのデータを賞賛していても、これがうまくいくと思いますか? – Xealgo
@Xealgoはい、問題ありません - UNIXソケット(パイプ)経由の通信は非常に高速です。 –
ソケットを使用できます。 PHPはソケット実装を持っています:http://www.php.net/manual/en/ref.sockets.php
私はCでソケットプログラミングを行っていますが、あなたがリストしている他の言語のほとんどは、ソケットでうまく動作するはずです。
PHPでは、socket_bind()
を使用してソケットに接続します。同様に、他のデーモンと同等の処理を行う必要があります。
私はすでにこれで少し作業していますが、とにかくあなたのためにありがとう! – Xealgo
- 1. PHPデーモン/ワーカー環境
- 2. PHPのCLIデーモンは、このようなデーモンとして、私は無限のPHPスクリプトを実行し
- 3. ルビー:ロガーとデーモン
- 4. HTTP ::デーモンとスレッド
- 5. PHPスクリプトからPythonデーモンと通信する方法
- 6. LinuxデーモンとSTDIN/STDOUT
- 7. PHPとCデーモン間の最も効率的なプロセス間コール
- 8. カウントダウンタイマーはPHP mysqlと対話する
- 9. phpのターミナルプログラムと対話しますか?
- 10. javaのワーカーとデーモンのスレッド
- 11. デーモンとPythonスクリプトのアップスタート
- 12. Rubyのデーモンとbluepill監視
- 13. Intel xdkデーモンとintel galileo gen2
- 14. upstartで実行するPHPスクリプトをデーモン化する方法
- 15. PHP /フロントエンドの対話
- 16. PHPデーモンが自動的に再起動して失敗する
- 17. phpデーモンをインストールするのに適切なlinuxディレクトリ
- 18. 「推論デーモン」とは何ですか?
- 19. adbデーモンとは何ですか?
- 20. C++のデーモンとソケットとのインタフェース
- 21. Codeigniter CLIデーモン
- 22. PostgreSQL非デーモン
- 23. Azureのリバースプロキシ/デーモン
- 24. デーモン用メークファイル
- 25. 岩のデーモン
- 26. タスク管理デーモン
- 27. Androidのデーモン
- 28. Volttron initデーモン
- 29. 対話的なPHPシェルテクニック
- 30. PHPウェブアプリケーション+ TAPI/VOIP電話?
UNIXドメインソケットは、常にTCPよりも高速です。ローカル専用通信にtcpを使用しないでください。 –