![](/img/trans.png)
[英]IPAddress from NSData using Bonjour NSNetService in MonoTouch?
[英]NSNetService/Bonjour discovery only works on iPhone simulator
我正在开发一个需要基本客户端/服务器交互模型的iPhone应用程序。 为此,我将使用Bonjour和NSNetService以及NSNetServiceBrowser来发现同一网络上的其他服务器。 我遵循了几个不同的指南,这些指南或多或少具有相同的示例代码。
相关服务器代码
...
serverName = [[UIDevice currentDevice] name];
netService = [[NSNetService alloc] initWithDomain:@"local."
type:@"_myservice._tcp."
name:serverName
port:port];
...
服务成功发布,即得到netServiceDidPublish:回调
相关浏览器代码
...
browser = [[NSNetServiceBrowser alloc] init];
[browser setDelegate:delegate];
[browser searchForServicesOfType:@"_myservice._tcp."
inDomain:@"local."];
...
现在所有这些的结果都很有趣:
iPhone Simulator的屏幕截图
我有点不知所措...模拟器完全按预期工作。 但是在设备上却不是,我无法在同一WiFi上让两部不同的iPhone互相看到,它们只能看到自己。 知道这里发生了什么吗?
原来,我所在的路由器默认情况下启用了“ SPI防火墙”。 将其关闭可以解决问题。
我仍然好奇的一件事是:来自我的Mac(iPhone模拟器和Bonjour浏览器)的请求如何能够通过此防火墙,而3部不同的iPhone却无法通过?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.