docker workspace 容器开放9502端口
ports:
- "${WORKSPACE_SSH_PORT}:22"
- "9501:9501"
- "9502:9502/udp"
通过netstat命令可以查看我们映射的端口默认docker开放的端口是tcp协议,如果开放udp端口需要加udp标识
创建udpServer
// 创建server对象,监听127.0.0.1:9502端口,类型为SWOOLE_SOCK_TCP
$serv = new swoole_server('0.0.0.0', 9502, SWOOLE_PROCESS, SWOOLE_SOCK_UDP);
// 监听服务器启动事件
$serv->on('start', function ($serv) {
echo "Start \n";
});
//监听数据接收事件
$serv->on('Packet', function ($serv, $data, $clientInfo) {
$serv->sendto($clientInfo['address'], $clientInfo['port'], "Server " . $data);
var_dump($clientInfo);
});
// 启动服务器
$serv->start();
window下载netcat工具模拟udp发包
启动服务器
docker-compose exec workspace bash
// 进入workspace容器启动udpServer
php udp_server.php
// 启动服务器
启动客户端向udpServer发送消息
.\nc.exe -u 127.0.0.1 9502
// 启动客户端连接
下图展示了我们向服务器发送的信息并且服务器给客户端的响应