swoole学习第三讲(创建udp服务器)

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发包

附下载地址:https://www.jianshu.com/p/0c744454cd8c

启动服务器

docker-compose exec workspace bash // 进入workspace容器启动udpServer
php udp_server.php // 启动服务器

启动客户端向udpServer发送消息

.\nc.exe -u 127.0.0.1 9502 // 启动客户端连接
下图展示了我们向服务器发送的信息并且服务器给客户端的响应

你可能感兴趣的:(swoole学习第三讲(创建udp服务器))