首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iPhone SDK: Bonjour & NSNetService name !=发布名称?

iPhone SDK: Bonjour & NSNetService name !=发布名称?
EN

Stack Overflow用户
提问于 2010-05-26 22:39:57
回答 1查看 1.9K关注 0票数 3

在我的iPhone应用程序中,我发布了一个bonjour服务,并使用以下委托方法:

代码语言:javascript
复制
- (void)netServiceDidPublish:(NSNetService *)ns
{
   NSLog(@"Bonjour Service Published: http://%@.%@", [ns name], [ns domain]);
}

" name“属性返回设备名称"How's Testing",这是正确的。但是,当我使用Safari发现可用的服务时,名称是"hows-testing“--服务是http://hows-testing.local.:somePortNumber

为什么发布的名称与NSNetService报告的名称不同?如何显示已发布服务的实际名称?假设由于某种原因,无法从对象中获取已发布的名称,我如何自己确定它呢?我知道它是基于设备名称的,但是替换规则是什么呢?删除撇号,用dash...anything替换空格,否则?那么特殊字符呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-06-08 12:50:28

我相信“hows- that”是计算机的主机名,而不是服务的名称。相反,您需要查看hostName属性:

代码语言:javascript
复制
- (void)netServiceDidPublish:(NSNetService *)ns
{
   NSLog(@"Bonjour Service Published: http://%@", [ns hostName]);
}

您可能还应该检查端口的属性,如果该端口不是该协议的默认端口(对于HTTP80),则将其包含在URL中

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2913951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档