2

我认为这可能是一个 iOS 错误。

我运行以下简单代码来广播网络服务:

self.netService = [[NSNetService alloc] initWithDomain:@"local."
                                                          type:@"_testnetwork._tcp."
                                                          name:[[UIDevice currentDevice] name]
                                                          port:port];
self.netService.delegate = self;
[self.netService publish];

在另一台设备上,我运行此代码来检测网络服务:

self.netServiceBrowser = [[NSNetServiceBrowser alloc] init];
self.netServiceBrowser.delegate = (id)self;
[self.netServiceBrowser searchForServicesOfType:@"_testnetwork._tcp." inDomain:@"local."];

继续发生的事情是,浏览器会在第一次出现网络服务时检测到,然后当服务消失时,大部分时间它不会检测到它,仍然认为 NSNetService 仍在广播。有趣的是,可以在两个设备上停止应用程序,并且可以启动浏览器,并且仍然会检测到旧服务当前正在广播 - 它挂起。

当服务出现和消失时,在 mac 上的终端中使用此代码正确显示:

dns-sd -B _test._tcp

这个问题有什么解决办法吗?这是iOS错误吗?

4

0 回答 0