【问题标题】:Return Datagrams from RawDatagramSocket (Flutter)从 RawDatagramSocket (Flutter) 返回数据报
【发布时间】:2021-10-20 21:36:54
【问题描述】:

this link 中描述了在发送广播UDP 数据包时如何打印所有数据报。但是如何接收它们的列表呢? 我试试这个

List<Datagram> list = [];
...
socket.listen(event) {
list.add(socket.receive());
}
...
return list;

但这是行不通的。

socket.close();
await socket.toList();

保存一个事件列表,只需 一个 关闭它们的事件。 有没有办法保存数据报列表?

【问题讨论】:

    标签: flutter udp broadcast


    【解决方案1】:

    只需要等待

    List<dynamic> result = [];
    InternetAddress destination = InternetAddress("255.255.255.255");
        RawDatagramSocket udp =
            await RawDatagramSocket.bind(InternetAddress.anyIPv4, port);
        List<int> message = utf8.encode('test');
        udp.broadcastEnabled = true;
        udp.listen((e) {
          Datagram dg = udp.receive();
          if (dg != null) {
            result.add(dg.data);
          {
        });
    udp.send(message, destination, port);
    await Future.delayed(Duration(seconds: 3));
    udp.close();
    return result;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-08
      • 1970-01-01
      • 2020-03-08
      • 1970-01-01
      • 2021-05-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多