【问题标题】:iOS 14 gives "OS Error: Bad file descriptor, errno = 9" when doing local network broadcastingiOS 14 在进行本地网络广播时给出“OS Error: Bad file descriptor, errno = 9”
【发布时间】:2021-12-20 01:53:33
【问题描述】:

在这里做一点Jeopardy style Q&A

我正在 Flutter 中开发一个应用程序,它使用 the udp package 在本地网络上进行广播。在我尝试在 iOS 14.6 设备上之前,这在 Android、Windows、macOS 和 iOS 上运行良好。

代码流程主要是这样的:

var endPoint = Endpoint.broadcast(port: Port(6000));
var udpFuture = UDP.bind(Endpoint.any(port: Port(6000)));
udpFuture.then((udp) {
   udp.listen((datagram) {
       handleMessage(datagram.data);
   });
   udp.send(bytesToSend, endPoint);
}

我收到的错误消息是:Unhandled Exception: OS Error: Bad file descriptor, errno = 9

【问题讨论】:

    标签: flutter udp multicast ios14


    【解决方案1】:

    从 iOS 14 开始,您的应用需要多播网络授权 com.apple.developer.networking.multicast 才能发送或接收 IP 多播流量。

    要获得授权,您需要apply using Apple's request form。我花了 4-5 天的时间才获得批准。

    那你就可以关注the instructions on Apple's forums 启动运行了。

    【讨论】:

      猜你喜欢
      • 2016-04-15
      • 1970-01-01
      • 2019-08-19
      • 2021-12-05
      • 1970-01-01
      • 2011-12-02
      • 1970-01-01
      • 2023-01-24
      • 2017-07-29
      相关资源
      最近更新 更多