多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# onPacket 接收到UDP数据包时回调此函数,发生在worker进程中。函数原型: ```php function onPacket(swoole_server $server, string $data, array $client_info); ``` * $server,swoole_server对象 * $data,收到的数据内容,可能是文本或者二进制内容 * $client_info,客户端信息包括address/port/server_socket 3项数据 服务器同时监听TCP/UDP端口时,收到TCP协议的数据会回调`onReceive`,收到UDP数据包回调`onPacket`,服务器设置的`EOF`或`Length`协议对UDP端口是不生效的,因为UDP包本身存在消息边界,不需要额外的协议处理。 > onPacket事件回调在1.7.18以上版本可用 > 如果未设置onPacket回调函数,收到UDP数据包默认会回调onReceive函数 数据转换 ---- `onPacket`回调可以通过计算得到`onReceive`的`$fd`和`$reactor_id`参数值。计算方法如下: ```php $fd = unpack('L', pack('N', ip2long($addr['address'])))[1]; $reactor_id = ($addr['server_socket'] << 16) + $addr['port']; ```