gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 16:21:47 25 4
gpt4 key购买 nike

在我的 iPhone 应用程序中,我正在发布 bonjour 服务并使用以下委托(delegate)方法:

- (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 报告的名称不同?如何显示已发布服务的实际名称?假设由于某种原因,无法从对象中获取发布的名称,我该如何自己确定呢?我知道它是基于设备名称,但是替换规则是什么?删除撇号,用破折号替换空格......还有其他吗?特殊字符呢?

最佳答案

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

- (void)netServiceDidPublish:(NSNetService *)ns
{
NSLog(@"Bonjour Service Published: http://%@", [ns hostName]);
}

如果端口不是该协议(protocol)的默认端口(HTTP 为 80),您可能还应该检查 port 属性,并将其包含在 URL 中

关于iPhone SDK : Bonjour & NSNetService name ! = 发布的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2913951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com