You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter无法接收UDP数据包问题排查求助

问题:Flutter UDP无法接收摄像头视频流数据包

我有一台摄像头,计划通过UDP数据包向Flutter应用传输实时视频流(已通过Wireshark确认数据包已发出),但应用始终无法接收这些数据包。每次启动新的流传输时,源端口号似乎会随机变化,因此我将绑定端口设为0,但仅能收到WRITE事件。

我的实现代码如下:

Future<void> _getUdpData() async {
    try {
      final datagramSocket = await RawDatagramSocket.bind(InternetAddress.anyIPv4, 0);
      datagramSocket.broadcastEnabled = true;
      datagramSocket.readEventsEnabled = true;
      print('Datagram socket ready to receive');
      print('${datagramSocket.address.address}:${datagramSocket.port}');
      datagramSocket.listen((RawSocketEvent event) {
        print('Socket event: $event');
        if (event == RawSocketEvent.read) {
          _handleReadEvent(datagramSocket);
        }
      });
    } catch (event) {
      print('Error retrieving data: $event');
    }
  }

  void _handleReadEvent(RawDatagramSocket datagramSocket) {
    Datagram? dg = datagramSocket.receive();
    if (dg != null) {
      String message = String.fromCharCodes(dg.data).trim();
      print('Datagram from ${dg.address.address}:${dg.port}: $message');
    } else {
      print('No datagram received.');
    }
  }

我查阅了相关文档,发现文档中的实现方案与我的代码结构一致,但问题仍未解决,这让我十分困惑。Wireshark已确认数据包正常发出。

内容的提问来源于stack exchange,提问作者NoobAmI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 01:11:02