Workermanを使用してシンプルなTCPサーバーを作成する方法
Workermanを使用してシンプルなTCPサーバーを作成するのは簡単です。まず、Workermanがインストールされていることを確認してください。通常、作曲家を介してインストールできます: Composerは、Workerman/workerman
を必要とします。次に、新しいPHPファイル(例: server.php
)を作成します。次のコードは、ポート2345に耳を傾ける基本的なTCPサーバーを確立します。 '/vendor/autoload.php'; Workerman \ Workerを使用してください。 $ worker = new Worker(" tcp://0.0.0.0:2345"); $ worker-> onconnect = function($ connection){echo" {$ connection-> getRemoteip()}からの新しい接続}:{$ connection-> getRemotePort()} \ n&quot ;; }; $ worker-> onmessage = function($ connection、$ data){//データをクライアントに戻します$ connection-> send($ data); }; $ worker-> onclose = function($ connection){echo" connectionクローズ:{$ connection-> getRemoteip()}:{$ connection-> getRemotePort()} \ n&quot ;; };ワーカー:: ranall();
このコードは、 workerman \ worker
クラスを使用してTCPワーカーを作成します。 tcp://0.0.0.0:2345
リスニングアドレスとポートを指定します。 onconnect
、 onmessage
、および onclose
コールバックは、それぞれ接続イベント、着信データ、および接続クロージャーを処理します。 worker :: runall()
はサーバーを起動します。 php Server.php
。マルチプロセスまたはマルチスレッドモデル(構成によって異なります)を使用して、多数の同時接続を効率的に管理します。この同時処理の鍵は、ワークマンのイベント主導のアーキテクチャにあります。接続が届くか、データが受信されると、Workermanは、他の接続をブロックせずに対応するコールバック( onconnect 、<code> onmessage
など)をトリガーします。これにより、パフォーマンスの劣化なしに多くのクライアントを処理できます。処理できる同時接続の数は、サーバーのリソース(CPU、メモリ、ネットワーク帯域幅)によって異なります。 Workermanの構成オプションを使用して、特定のニーズに合わせてワーカープロセスの数を調整できます。これらは通常、ワーカー
オブジェクト内で設定されます。いくつかの基本的な設定を次に示します。
-
worker-&gt; count
:ワーカープロセスの数を指定します。この数を増やすと、より多くのクライアントでパフォーマンスが向上する可能性がありますが、プロセスが多すぎるとシステムが過負荷になります。通常、デフォルトは1です。 -
worker-&gt; name
:ログと監視のより良い識別のためにワーカーに名前を割り当てます。一部のシナリオでは有用ですが、慎重に検討する必要があります。 -
worker-&gt; Transport
:トランスポート層プロトコル( 'TCP'、 'udp')を指定します。デフォルトは 'tcp'。 -
worker-&gt; ssl
: SSL/TLS暗号化を有効にします。 SSL証明書の構成が必要です。
server.php
ファイル内でこれらの設定を直接変更できます。例:
<code class="php"> $ worker = new Worker(&quot; tcp://0.0.0.0:2345&quot;); $ worker-&gt; count = 4; // 4ワーカープロセスを使用$ worker-&gt; name =&quot; mytcpserver&quot ;; ?サーバーは、<code> $ data </code> <code> onmessage </code>関数のパラメーターを介してデータを受信します。クライアントにデータを送信するには、<code> $ connection-&gt; send()</code>メソッドを使用します。必要に応じてこのデータを処理できます。例: <pre class="brush:php;toolbar:false"> <code class="php"> $ worker-&gt; onmessage = function($ connection、$ data){$ receiveddata = trim($ data); //リーディング/トレーリングホワイトスペースエコー&quot; receed:&quot; 。 $ receivedata。 &quot; \ n&quot ;; //受信したデータを処理... $ response =&quot;サーバー受信:&quot; 。 $ receiveData; $ connection-&gt; send($ response); }; </code>
データの送信:
クライアントにデータを送信するには、 $ connection-> $ connection-&gt; send()
メソッド: <code code="php"> $ worker-&gt; connection = conness、$ connections&gt; $ connection&gt;サーバー!&quot;); }; </code>
コールバック内で潜在的なエラー(接続障害など)を適切に処理することを忘れないでください。これにより、Workerman TCPサーバー内でデータを送信および受信するための基本的なフレームワークが提供されます。より複雑なデータ処理には、シリアル化または他のデータ構造化手法が含まれる場合があります。
以上がWorkermanを使用してシンプルなTCPサーバーを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター
