0

我们正在为 Android 和 iOS 创建一个多平台应用程序。
目前,我们有一个在 Android 中发布的服务,其中包含这些信息
类型:_http._tcp 或 _http._udp 名称:abcController 端口

现在,我想浏览 iOS 应用程序中的“abcController”服务以获取主机(ip)列表以进行连接。我正在尝试使用这些代码

 NSString* servicesOfType = @"abcController._http._tcp.";
NSString* domain  = @"";

domainBrowser = [[NSNetServiceBrowser alloc] init];
[domainBrowser setDelegate:self];
[domainBrowser searchForServicesOfType:servicesOfType inDomain:domain];

但是,它只调用 netServiceBrowserWillSearch 并没有任何响应。

任何帮助都非常感谢!

4

2 回答 2

0

您的服务名称需要以“_”开头,否则它会被混淆为域。

于 2014-01-20T14:12:35.377 回答
0

我找到了我的问题的解决方案。因此,事实证明我的服务是在 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;
}

我现在可以接受我的服务了。

于 2014-01-22T01:34:43.780 回答