如何使用 IBM BlueSocket 在多个接口上侦听 SSDP 回复

问题描述 投票:0回答:1

我正在使用 SSDPClientBlueSocket 来发现一些 NAS 设备。

现在,我发现使用库存代码,我只能在默认接口上收到响应,而不能在具有自己子网的其他接口上收到响应。我在每个子网上都有一个 NAS,当我将其中一个接口设置为默认接口时,该子网上的设备会响应,但我没有收到另一个接口的响应。

我怀疑BlueSocket只在默认接口上监听或广播(多播)。但我不知道如何改变它,因为源代码中没有提到接口,而且我对 BSD 套接字设计不够熟悉,无法找到如何修复代码。

我怀疑我需要迭代所有接口,获取它们的 IP 地址,然后让 SSDPDiscovery 代码监听或写入每个接口,以获得所有响应。我怎样才能做到这一点?

ios macos sockets udp ssdp
1个回答
0
投票

BlueSocket 代码将接口地址称为“节点”。它是

listen()
函数的参数。

要侦听备用接口,请将其本地 IP 地址作为

node:
参数传递,如下所示:

try self.socket!.listen(on: 0, node: "192.168.2.123")
© www.soinside.com 2019 - 2024. All rights reserved.