udp组播监听 的实现

xuntee

linux 测试通过

<?php

use Workerman\Worker;

require_once __DIR__ . '/vendor/autoload.php';
// 创建 Worker 对象
$worker = new Worker('udp://0.0.0.0:5060');

// 监听 UDP 多播请求
$worker->onMessage = function ($connection, $data) {
    // 处理接收到的 UDP 多播数据
    echo "接收到多播数据: $data\n";
};

// 在 Worker 启动时将 Socket 加入到多播组
$worker->onWorkerStart = function ($worker) {
    $socket = \socket_import_stream($worker->getMainSocket());
    // 将 Socket 加入到多播组
    $group = '224.0.1.75';
    socket_set_option($socket, IPPROTO_IP, MCAST_JOIN_GROUP, array('group' => $group));
};

// 运行 Worker
Worker::runAll();
718 1 3
1个评论

artisan

👍,大佬这个实现是基于什么场景的需求?

  • xuntee 2023-05-30

    物联网设备状态管理 你可以搜索一下 搜索一下七层协议 广播相关的

  • xuntee 2023-05-30

    比如 海康摄像头 会向239.255.255.250:37020发送udp数据 实现 局域网内设备搜索 状态更新

xuntee

330
积分
0
获赞数
0
粉丝数
2022-07-21 加入
🔝