2012-04-17 7 views
1

PHP CLI SAPIを使用して(簡単な)サーバソフトウェアを開発することは可能ですか?サーバーが複数の要求を同時に処理できるように、PHPで(実際の)マルチスレッドの使用可能な方法がありますか?または、このようなプロジェクト(Pythonなど)に別のスクリプト言語をお勧めしますか?PHP CLI SAPIを使用したPHPベースのサーバSAPI

+0

問題を探している解決策を探しているようです... –

+0

いいえ、巨大な努力なしにPHPで可能かどうかは分かりません。そうでない場合は、phytonなどに切り替える – Stefan

+0

WebサーバーからCLI経由でPHPを実行すると、CGIまたはmod_phpで何も得られません。 –

答えて

1

はい、PHPでTCPまたはUDPサーバを開発することは可能です。 PHPでソケット関数のセットを見て:PHP:Sockets - Manual

PHPは何のマルチスレッド機能を持っていませんが、あなたが非質問に答えるためにsocket_select()

とともにIO(seesocket_set_nonblock())をブロック使用して簡単な並列処理を作成することができます「それはそれはプロジェクト要件に関するより多くの情報を必要とします。 「はい」の理由は以下のようになります。

  • は、既存のPHPクラス、モデルフレームワークサーバーを使用してPHPのデータ構造をエクスチェンジする予定
  • にサーバーを統合する必要があります。 (serialize(),unserialize()を使用して生成されている可能性があります)

追加の理由があるかもしれません。

Webサーバー環境(たとえばapache SAPI)には、すでにパラレルTCPサーバー(Webサーバー)があることに注意してください。いくつかの要求の間に通信を実装するだけで済みます。 PHPのIPC機能、データベース、または少なくともその通信用のファイルを使用することができます。

0

PHP CLI SAPIを使用して(簡単な)サーバーソフトウェアを開発することは可能ですか?

すでにあります1ビルトイン:http://php.net/manual/en/features.commandline.webserver.php

サーバは同時に複数の要求を処理することができますので、PHPでの(本当の)マルチスレッドの一部に使用可能な方法はありますか?

あなたは通常、PHPでそれを行うのではなく、http://php.net/manual/en/book.gearman.php

それとも、別のスクリプト言語をお勧めしますように、(あなたもPHPで書くことができます)sepparatedサービスに引き渡すませんこのようなプロジェクト(フィトンなど)のために?

これはお客様のニーズに応じており、詳細情報なしでは回答できません。 Pythonの、JavaまたはGolangはよく

より良い選択肢かもしれ:PHPはマルチスレッド言語ですが、それは、スクリプトの実行時にマルチスレッド機能を公開しません。

関連する問題