Workerman과 함께 간단한 TCP 서버를 만드는 것은 간단합니다. 먼저 Workerman을 설치했는지 확인하십시오. 일반적으로 작곡가를 통해 설치할 수 있습니다. 작곡가에게는 Workerman/Workerman
가 필요합니다. 그런 다음 새 PHP 파일을 만듭니다 (예 : server.php
). 다음 코드는 포트 2345에서 듣는 기본 TCP 서버를 설정합니다. '/vendor/autoload.php'; Workerman \ Worker를 사용하십시오. $ Worker = New Worker ( "tcp : //0.0.0.0 : 2345"); $ worker- & gt; onconnect = function ($ connection) {echo & quot; {$ connection- & gt; getRemoteip ()}에서 새로운 연결; }; $ worker- & gt; onmessage = function ($ connection, $ data) {// 데이터를 클라이언트로 돌려 $ connection- & gt; send ($ data); }; $ worker- & gt; onclose = function ($ connection) {echo & quot; connection 닫혀 : {$ connection- & gt; getRemoteip ()} : {$ connection- & gt; getRemotePort ()} \ & quot ;; }; Worker :: Runall ();
이 코드는 workerman \ worker
클래스를 사용하여 TCP 작업자를 만듭니다. tcp : //0.0.0.0 : 2345
청취 주소와 포트를 지정합니다. onconnect
, onmessage
및 onclose
콜백은 각각 연결 이벤트, 들어오는 데이터 및 연결 클로저를 처리합니다. worker :: runall ()
서버를 시작합니다. php server.php>.
예, Workerman은 여러 TCP 클라이언트 연결을 동시에 처리하도록 설계되었습니다. 다중 프로세스 또는 멀티 스레드 모델 (구성에 따라 다름)을 사용하여 수많은 동시 연결을 효율적으로 관리합니다. 이 동시 처리의 핵심은 노동자의 이벤트 중심의 아키텍처에 있습니다. 연결이 도착하거나 데이터가 수신되면 Workerman은 다른 연결을 차단하지 않고 해당 콜백 ( onconnect>, <code> onmessage
등)을 트리거합니다. 이를 통해 성능 저하없이 많은 클라이언트를 처리 할 수 있습니다. 처리 할 수있는 동시 연결 수는 서버의 리소스 (CPU, 메모리, 네트워크 대역폭)에 따라 다릅니다. Workerman의 구성 옵션을 통해 특정 요구를 최적화하기 위해 작업자 프로세스 수를 조정할 수 있습니다.
Workerman은 TCP 서버를 사용자 정의하기위한 여러 구성 옵션을 제공합니다. 이들은 일반적으로 작업자
객체 내에 설정됩니다. 몇 가지 기본 설정은 다음과 같습니다.
작업자-& gt; count
: 작업자 프로세스 수를 지정합니다. 이 숫자를 늘리면 더 많은 클라이언트를 통해 성능을 향상시킬 수 있지만 너무 많은 프로세스는 시스템에 과부하가 걸릴 수 있습니다. 기본값은 일반적으로 1입니다.
작업자-& gt; 재사용
Worker- & gt; ssl
: server.php
파일 내에서 직접 이러한 설정을 수정할 수 있습니다. 예 :
<code class="php"> $ Worker = new Worker ( "tcp : //0.0.0.0 : 2345 & quot;); $ Worker- & gt; count = 4; // 4 작업자 프로세스 사용 $ Worker- & gt; name = "mytcpserver & quot;; // ... 기타 설정 ... </code>
데이터를 보내고 수신하는 것은 $ connection
객체를 통해 onmessage
콜백을 통해 처리됩니다. 서버는 onmessage
함수의 $ data
매개 변수를 통해 데이터를 수신합니다. 클라이언트로 다시 데이터를 보내려면 $ connection- & gt; send ()
메소드를 사용하십시오.
데이터 수신 :
onmessage
콜백에서 클라이언트로부터받은 데이터가 포함됩니다. 필요에 따라이 데이터를 처리 할 수 있습니다. 예 :
<code class="php"> $ worker- & gt; onmessage = function ($ connection, $ data) {$ leadeData = trim ($ data); // 리드/트레일 링 스페이스 echo & quot; 수신 : "; . $ receptData. "\ n" // 수신 된 데이터를 처리합니다 ... $ response = "서버 수신 :"; . $ leadeData; $ connection- & gt; send ($ 응답); }; </code>
데이터 보내기 :
클라이언트로 다시 데이터를 보내려면 $ connection- & gt; send ()
메소드 :
<code class="php"> $ worker- & gt; onmessage = connection ($ connection, $ data) {// ... Process Data) {// $ connection- & gt; send ( "서버에서 Hello!"; }; </code>
콜백 내에서 잠재적 오류 (예 : 연결 고장)를 적절하게 처리해야합니다. 이는 Workerman TCP 서버 내에서 데이터를 보내고 수신하기위한 기본 프레임 워크를 제공합니다. 보다 복잡한 데이터 처리에는 직렬화 또는 기타 데이터 구조 기술이 포함될 수 있습니다.
위 내용은 Workerman을 사용하여 간단한 TCP 서버를 어떻게 작성합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!