【发布时间】:2019-06-17 02:00:36
【问题描述】:
我正在寻求帮助,因为我似乎找不到使用 Dart 在本地网络内发送 UDP 广播的方法。
到目前为止,我设法使用 UDP 与 RawDatagramSocket 进行通信。我可以向特定地址发送消息。
我不能做的是向本地网络内的任何设备发送广播(网络掩码为 255.255.255.0),并等待可能的(多个)答案。这是我正在使用的代码:
RawDatagramSocket.bind('127.0.0.1', 8889)
.then((RawDatagramSocket udpSocket) {
udpSocket.listen((e) {
Datagram dg = udpSocket.receive();
if (dg != null) {
//stuff
}
});
udpSocket.send(utf8.encode('TEST'), DESTINATION_ADDRESS, 8889);
});
我试图用InternetAddress.anyIPv4 替换DESTINATION_ADDRESS,但我没有运气。我还在RawDatagramSocket 中找到了broadcastEnabled 属性,但我找不到有关如何使用它的更多信息。
提前感谢您的帮助。
【问题讨论】:
-
广播 UDP 经常被网络设备阻止,因为它造成的负载。考虑使用多播将消息发送给多个接收者。
标签: sockets dart udp broadcast