1.在/web/tool/demo/server下新建udp_server.php
```
<?php
//創建Server對象,監聽 127.0.0.1:9502端口,類型為SWOOLE_SOCK_UDP
$serv = new swoole_server("127.0.0.1", 9502, SWOOLE_PROCESS, SWOOLE_SOCK_UDP);
//監聽數據接收事件
$serv->on('Packet', function ($serv, $data, $clientInfo) {
$serv->sendto($clientInfo['address'], $clientInfo['port'], "Server ".$data);
var_dump($clientInfo);
});
//啟動服務器
$serv->start(); //創建Server對象,監聽 127.0.0.1:9502端口,類型為SWOOLE_SOCK_UDP
$serv = new swoole_server("127.0.0.1", 9502, SWOOLE_PROCESS, SWOOLE_SOCK_UDP);
//監聽數據接收事件
$serv->on('Packet', function ($serv, $data, $clientInfo) {
$serv->sendto($clientInfo['address'], $clientInfo['port'], "Server ".$data);
var_dump($clientInfo);
});
//啟動服務器
$serv->start();
```
UDP服務器與TCP服務器不同,UDP沒有連接的概念。啟動Server后,客戶端無需Connect,直接可以向Server監聽的9502端口發送數據包。對應的事件為onPacket。
* $clientInfo是客戶端的相關信息,是一個數組,有客戶端的IP和端口等內容
* 調用?`$server->sendto`?方法向客戶端發送數據
2.啟動服務
```
cd /web/tool/demo/server
php udp_server.php
```
UDP服務器可以使用`netcat -u`?來連接測試
```
netcat -u 127.0.0.1 9502
hello
Server: hello
```