【发布时间】:2015-09-17 05:19:35
【问题描述】:
我正在使用 GCDAsyncUdpSocket 广播 UDP 数据包以搜索我的 NAS 设备。
下面是发送和接收UDP数据包的代码sn-p
NSString *broadCastAddress = @"255.255.255.255";
NSInteger udpPort = 8097;
GCDAsyncUdpSocket *gcdAsyncUdpSocket = [[GCDAsyncUdpSocket alloc] initWithDelegate:selfdelegateQueue:dispatch_get_main_queue()];
[gcdAsyncUdpSocket bindToPort:udpPort error:&error];
[gcdAsyncUdpSocket setPreferIPv4];
NSData *data = @“Hi there”; // Sample data
[gcdAsyncUdpSocket enableBroadcast:YES error:&error];
[gcdAsyncUdpSocket beginReceiving:&error];
[gcdAsyncUdpSocket sendData:data toHost:broadCastAddress port:udpPort withTimeout:-1 tag:1];
上面的代码只能通过单个网络接口发送数据包,即 Wifi 或以太网或 Thunderbolt,问题是我想通过所有可用的网络接口进行广播。 (以太网、WiFi、Thunderbolt 等)。
有什么方法可以同时通过所有可用的网络接口(以太网、WiFi、Thunderbolt 等)并使用相同的端口进行广播。
任何帮助表示赞赏,在此先感谢。
【问题讨论】:
标签: objective-c macos sockets networking gcdasyncudpsocket