本节将会讲解如下2个问题:

通过Swoole如何搭建UPD服务?对比TCP和UDP有什么不同?

01通过Swoole如何搭建UPD服务

新建一个文件命名为 udp_server.php,代码如下:

在命令行执行如下命令就可以开启TCP服务:

php udp_server.php

运行完命令后就可以通过 netstat 工具查看服务是否启动成功,如果已经在监听9501端口了,这时就可以使用 netcat 工具来连接服务器了。

netcat -u 127.0.0.1 9502

helloServer: hello

同时服务端命令行会返回如下信息:

array(4) {

["server_socket"] => int(3)

["server_port"] => int(81)

["address"] => string(9) "127.0.0.1"

["port"] => int(10000)

}

02TCP和UDP有什么不同

UDP服务和TCP服务不同,UDP没有连接的概念。启动Server后,客户端无需 Connect,直接可以向Server监听的9502端口发送数据包。UDP服务端收到UDP数据包后会回调 onPacket 函数,此事件发生在 Worker进程中。onPacket 函数如下:

function onPacket(Swoole\Server $server, string $data, array $client_info);

$server 参数是 Swoole 中的 Server 对象$data 字段是UDP服务接收到的内容,可能是文本格式或者二进制内容$client_info 字段存放的是客户端信息,包括 address/port/server_socket 等多项客户端信息数据

当服务器同时监听 TCP/UDP 端口时,收到 TCP 协议的数据会回调 onReceive,收到 UDP 数据包会回调 onPacket 函数。服务器设置的 EOF 或 Length 等自动协议处理对于 UDP 端口时无效的,因为 UDP 包本身存在消息边界,不需要额外的协议处理。

php swoole udp,基于Swoole如何搭建UDP服务?相关推荐

  1. php 游戏开发swoole,《基于 Swoole 的对战游戏实践》开课啦

    项目由来 在三月份的时候就开始编写这个项目,原本只是觉得自己对 Swoole 不太熟练,当作练手来写着玩的.写着写着发现还挺好玩的,代码量也不多,捉迷藏游戏的趣味性不错. 如果只写完代码就扔在 Git ...

  2. 基于python Flask搭建mockServer服务

    前言: 为什么要用mockserver呢!我们自己内部接口需要使用微信,支付宝的支付功能,就需要验证和打钱才能返回固定的成功返回信息,成本太高,我们就可以用MockServer来模拟返回,绕过验证. ...

  3. 基于Nginx模块搭建直播服务

    转载请标明出处: https://blog.csdn.net/u014214308/article/details/82698542 直播技术原理: 客户端(A:主播,推流)通过摄像头采集到视频数据, ...

  4. linux脚本发送udp,基于shell脚本实现UDP端口探测

    shell提供了一种建立TCP/UDP连接的方法:/dev/udp/host/port /dev/tcp/host/port 所以,直接重定向当前shell的一个文件描述符到对应的ip/端口:exec ...

  5. 基于Linux CentOS搭建FTP服务

    vsftpd(very secure FTP daemon)是一款在Linux发行版中最受推崇的FTP服务器.vsftpd支持匿名访问和本地用户模式两种访问方式.匿名访问方式任何用户都可以访问搭建的F ...

  6. 基于 SoapUI 工具测试 Rest 服务

    简介   SoapUI 是一个免费的.开源的.跨平台的测试工具.支持多种协议,例如:SOAP, REST, HTTP, JMS, AMF 和 JDBC.通过 SoapUI 可以方便快速地进行自动化测试 ...

  7. PHP 接收 UDP包_php只能做网站?基于swoole+websocket开发双向通信应用

    前言 众所周知,PHP用于开发基于HTTP协议的网站应用非常便捷.而HTTP协议是一种单向的通信协议,只能接收客户端的请求,然后响应请求,不能主动向客户端推送信息.因此,一些实时性要求比较高的应用,如 ...

  8. tcp连接工具_基于Swoole如何搭建TCP服务,你掌握了吗?

    本节将会讲解以下3个问题: 通过Swoole如何搭建TCP服务? 通过Swoole如何搭建TCP客户端? 通过Swoole搭建的TCP服务,更深入理解Swoole的事件驱动模式 通过Swoole可以快 ...

  9. 基于 Swoole 的 swoolefy 4.2.0 正式发布

    swoolefy是一个基于swoole实现的轻量级高性能的常驻内存型的API和Web应用服务框架, 高度封装了http,websocket,udp服务器,以及基于tcp实现可扩展的rpc服务, 同时支 ...

最新文章

  1. 跳槽“六要”你懂吗?[转载]
  2. 学习,是前进的必由之路
  3. 汇编指令长度计算方法
  4. 微软超级麻将AI Suphx论文发布,研发团队深度揭秘技术细节
  5. PowerShell全自动分配CPU
  6. Visual Assist X Options 注释设置-类
  7. 【java学习之路】(java SE篇)002.java SE基础语法
  8. matlab可以用python代替吗_Python 会不会替代 MATLAB
  9. 计算机图形学完整笔记(八):曲线曲面 - 2
  10. 【Oracle】rollup函数
  11. 微信小程序服务通知模板的实现
  12. 五年上市路,君亭才刚刚出发
  13. Lipschitz连续,一致连续
  14. SQLPro for SQLite for Mac(SQLite编辑器)
  15. Matplotlib绘图9种经典风格,你喜欢哪种?
  16. 计算机自动计算的条件,电脑表格怎样自动计算
  17. ros:游戏手柄控制海龟
  18. 神经网络种类及应用领域,常用的神经网络有哪些
  19. EXT JS 4.3 在线学习
  20. 编码标准:纪律和人因工程的双剑合璧

热门文章

  1. html中电子邮件怎么写,谈html mailto(电子邮件)实际应用
  2. Spring Boot集成Redis,这个坑把我害惨了!
  3. 第 5-5 课:线程安全——synchronized 和 ReentrantLock + 面试题
  4. Visual Studio 2012资源管理器里单击打开改为双击打开文件
  5. Python Django之GET请求和POST请求及响应处理
  6. 2021-01-24
  7. SpringBoot中mybatis配置多数据源
  8. 从前序与中序遍历序列构造二叉树
  9. C#中事务的简单使用
  10. task2 EDA探索性数据分析