我有一个在Android上发布的服务。如何在iOS中浏览它?

时间:2014-01-17 04:29:13

标签: android ios tcp nsnetservice nsnetservicebrowser

我们正在为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并且没有任何响应。

任何帮助都非常感谢!

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我为我的问题找到了解决方案。 事实证明我的服务是在udp中发布的, 因此。 withthiscode。

- (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;
}

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