我们正在为Android和iOS创建一个多平台应用程序。
目前,我们有一个在Android上发布的服务,其中包含这些信息
类型:_http._tcp 或 _http._udp名称:abc控制器港口
现在,我想浏览iOS应用程序中的"abcController"服务以获取用于连接的主机(ip)列表。我正在尝试使用这些代码来做到这一点
NSString* servicesOfType = @"abcController._http._tcp.";
NSString* domain = @"";
domainBrowser = [[NSNetServiceBrowser alloc] init];
[domainBrowser setDelegate:self];
[domainBrowser searchForServicesOfType:servicesOfType inDomain:domain];
但是,它只调用netServiceBrowserWillSearch,没有任何响应。
任何帮助都非常感谢!
您的服务名称需要以"_"开头,否则它将被混淆为域。
我找到了我的问题的解决方案。事实证明,我的服务是在udp中发布的,因此。用这个代码。
- (void) initBrowsingServices
{
NSString* servicesOfType = @"_http._udp.";
NSString* domain = @"local";
domainBrowser = [[NSNetServiceBrowser alloc] init];
[domainBrowser setDelegate:self];
[domainBrowser searchForServicesOfType:servicesOfType inDomain:domain];
domains = [[NSMutableArray alloc] init];
searching = NO;
}
我现在可以接受我的服务了。