在 iPhone(服务器)上,我尝试发布服务,但我的代码遇到了NSNetService
对象的委托方法:
-(void)netServiceDidPublish:(NSNetService *)sender
所以我相信我的服务@"_chatty._tcp."
已经成功发布了。然后在另一部 iPhone(客户端)上,我NSNetServiceBrowser
用来查找我的服务,但它没有遇到委托方法:
-(void)netServiceBrowser:(NSNetServiceBrowser *)netServiceBrowser didFindService:(NSNetService *)netService moreComing:(BOOL)moreServicesComing
我在这个网站上发现了一些与我的案例相关的问题,大部分答案都提醒检查委托对象是否超出范围。我确信我的委托工作良好,因为它遇到了另一个委托方法,例如:
-(void)netServiceBrowserWillSearch:(NSNetServiceBrowser *)aNetServiceBrowser
有人可以帮我找出原因吗?
以下是我的代码的一些部分:
我这样初始化服务:
#define MY_PROTOCOL @"_chatty._tcp."
self.myService = [[NSNetService alloc]
initWithDomain:@"" type:MY_PROTOCOL
name:@"thaith" port:self.port];
端口在 Browser 类中使用给定的 listenerSocket 进行初始化:
NSNetServiceBrowser* finder = [[NSNetServiceBrowser alloc] init];
//I also retain the finder.
finder.delegate = self;
[finder searchForServicesOfType:MY_PROTOCOL inDomain:@""];