建议先阅读官方文档的以下章节.
<?php
//创建Server对象,监听 0.0.0.0:9501端口
$serv = new swoole_server("0.0.0.0", 9501,SWOOLE_PROCESS,SWOOLE_SOCK_UDP);
//配置
$serv->set([
'worker_num' => 2, //设置进程
]);
//接收到udp数据的时候触发
$serv->on('Packet',function ($serv,$data,$clientInfo){
//var_dump($data,$clientInfo);
$serv->sendto($clientInfo['address'],$clientInfo['port'],'服务端udp数据包');
});
//启动服务器
$serv->start();
UDP服务器与TCP服务器不同,UDP没有连接的概念。启动Server后,客户端无需Connect,直接可以向Server监听的9502端口发送数据包。对应的事件为onPacket。
$client = new swoole_client(SWOOLE_SOCK_UDP, SWOOLE_SOCK_SYNC);
//不计后果
var_dump($client->sendto('127.0.0.1', 9501,'udp数据'));
//从服务端接收数据
$response = $client->recv();
// 输出接受到的数据
echo $response . PHP_EOL;