Heim  >  Artikel  >  Backend-Entwicklung  >  So erstellen Sie einen UDP-Server mit swoole (Codebeispiel)

So erstellen Sie einen UDP-Server mit swoole (Codebeispiel)

不言
不言nach vorne
2019-01-15 11:31:013160Durchsuche

Der Inhalt dieses Artikels handelt von der Methode (Codebeispiel) zum Erstellen eines UDP-Servers. Ich hoffe, dass er hilfreich ist Dir zu helfen.

udp_server.php

<?php
// 创建Server对象,监听 127.0.0.1:9502端口,类型为SWOOLE_SOCK_UDP
$serv = new swoole_server(&#39;127.0.0.1&#39;, 9502, SWOOLE_PROCESS, SWOOLE_SOCK_UDP);

// 监听数据接收事件
$serv->on(&#39;Packet&#39;, function ($serv, $data, $clientInfo) {
    $serv->sendto($clientInfo[&#39;address&#39;], $clientInfo[&#39;port&#39;], &#39;Server &#39; . $data);
    var_dump($clientInfo);
});

// 启动服务器
$serv->start();

Der UDP-Server hat kein Verbindungskonzept. Nach dem Start muss der Client keine Verbindung herstellen und kann Datenpakete direkt an den vom Server überwachten Port senden . $clientInfo sind die relevanten Informationen des Clients

1. Starten Sie den Dienst

$ /usr/local/php/bin/php udp_server.php

2. Überprüfen Sie nach erfolgreichem Start netstat

$ ps aux | grep php    
oosten   22944  0.0  2.2 314416 23220 pts/4    Sl+  10:49   0:00 /usr/local/php/bin/php udp_server.php
oosten   22945  0.0  0.4 240032  4084 pts/4    S+   10:49   0:00 /usr/local/php/bin/php udp_server.php
oosten   22947  0.0  0.7 244732  7148 pts/4    S+   10:49   0:00 /usr/local/php/bin/php udp_server.php

3.nc verbinden Sie sich mit dem Server

$ nc -u 127.0.0.1 9502 ###-u,使用udp传输协议hello
Server hello

Nachdem der Client das Datenpaket gesendet hat, druckt der Server die $clientInfo-Daten

array(4) {
  ["server_socket"]=>
  int(3)
  ["server_port"]=>
  int(9502)
  ["address"]=>
  string(9) "127.0.0.1"
  ["port"]=>
  int(40635)
}

5. Beenden Sie den Vorgang

 kill 22944

Das obige ist der detaillierte Inhalt vonSo erstellen Sie einen UDP-Server mit swoole (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen