问题标签 [nsnetservice]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1132 浏览

ios - 在 iOS 中获取本地网络主机名

我想获取整个本地网络中的所有设备名称。我刚刚搜索了 2 多天,还没有找到解决方案。

我可以使用 NSNetServiceBrowser 获得 Bonjour 服务。我想做的与 Fing 应用程序(在应用程序商店中)相同。

如下图所示,我想用 iOS 获取“我的 iPhone”iPhone 名称。

Fing 可以成功获取整个本地网络的所有设备名称

问候

昂德尔

0 投票
3 回答
699 浏览

ios - NSNetService dictionaryFromTXTRecord 对无效输入的断言失败

输入dictionary(fromTXTRecord:)来自网络,可能来自应用程序外部,甚至是设备。但是,Apple 的文档说:

... 如果 txtData 不能表示为 NSDictionary 对象,则断言失败。

断言失败会使程序员(我)无法处理错误,这对于处理外部数据的方法来说似乎不合逻辑。

如果我在 Mac 上的终端中运行它:

我在 iPhone 上运行的应用程序崩溃了。

dictionary(fromTXTRecord:)期望 TXT 记录数据 ( asdf asdf) 在key=val格式中。如果像上面一样,一个单词不包含任何内容=,则该方法将无法解析它并使断言失败。

除了根本不使用该方法并实现我自己的解析之外,我认为没有其他方法可以解决这个问题,这感觉是错误的。

我错过了什么吗?

0 投票
1 回答
2813 浏览

swift - 带有 Swift 的 Bonjour 服务浏览器不获取服务信息

我要连接的服务是通过 Bonjour 发布的。
我可以使用 Bonjour 浏览器找到所有信息,但是如果我尝试以编程方式收集数据,我得到的唯一值就是服务的名称。

设置 NetService 委托并调用函数 netServiceWillPublish。不执行函数 DidNotPublish 或 DidPublish。

函数 netServiceBrowser 获取所有已发布的 netServices,但所有属性都设置为数据类型的默认值。

0 投票
0 回答
251 浏览

ios - Airplay 错误未知 VADPortStatus:-16612

我创建了两个 bonjour 服务:(_airplay._tcp.local端口 7000)和_raop._tcp.local(端口 41952)。当我发布这些服务时,它们会按预期显示在 iOS 的控制中心中。但是,当我尝试连接到它们时,airplay 服务失败并出现以下错误:

日志中的所有内容:

raop 服务能够连接,并且我的应用似乎正在接收来自 iOS 的流。

以下是配置服务的代码:

我在这个错误上找不到任何东西。这是什么意思?我的 txt 记录中是否有需要更改的特定内容?

0 投票
1 回答
431 浏览

ios - 从 Bonjour 网络解析主机名

我有一个使用 JmDNS 的基于 Java 的服务器,它是从 iOS 应用程序中发现的。

发现工作正常,这是由 NetServiceDelegate 执行以记录详细信息的回调:

这会产生一个如下所示的 URL: http ://az-mbp-ether-lan.local.:9090

现在我发誓这是可行的,但是现在当我尝试使用 Alamofire 将数据发送到此端点时,它始终会超时。

用目标机器的硬编码 IP 地址替换主机名使其再次工作,因此发送数据的代码没有根本问题。

上述形式的地址是否应以“.local”结尾。可以从与目标服务器位于同一网络上的 iOS 设备解析吗?

0 投票
1 回答
92 浏览

ios - 我可以将 TDAudioStreamer 与 GCDAsyncSocket 或 NetService 一起使用吗?

我想在多个设备之间流式传输音频文件,一个充当服务器,另一个充当本地网络上的客户端,我发现https://github.com/tonyd256/TDAudioStreamer这个类将音频流式传输到连接的客户端,但它使用乘数连接. 我想知道,如果有什么办法,我可以将这个类与GCDAsyncSocketNetService一起使用吗?

0 投票
0 回答
382 浏览

ios - NSURLSession 下载速度

对于我的 tvOS 应用程序,我需要在应用程序启动时下载一个大约 500 Mb 的文件。将NSURLSession大文件直接下载到磁盘是一项简单的任务。

根据网络分析器,我能够非常快地下载文件。图表显示我在过去 24 秒内的平均速度约为每秒 6Mb。 在此处输入图像描述

到目前为止,一切都很好。我的应用程序的另一部分需要通过自定义 NetService 进行通信。所以我正在准备和发布服务:

发布发生在应用程序生命的第 30 秒。在服务后,didPublishMethod我观察到网络分析器的 2 个变化。ipv4 和 ipv6 状态为“正在侦听”的前 2 个新的活动 TCP 连接。第二个是第一个活动连接的下载速度令人惊讶地急剧下降。在此处输入图像描述

如您所见,在第 30 秒后下载速度降至几 Kb/s。问题是这里发生了什么?NSNetService干扰吗NSURLSession?为什么本地服务的发布会影响单独的 TCP 连接?如果在连接之间共享资源,为什么会NSURLSession收到这么小的份额?

0 投票
1 回答
1037 浏览

ios - Swift 3 - 探索 bonjour 后得到一个空的 NetService.addresses 数组

我是 Swift 3 的新手。

我想获取我用 bonjour 探索的 NetServices 的 ip,以将它们展示给用户,而不是与设备连接。到目前为止,我可以使用 bonjour 搜索设备,并使用以下出色的访问代码将它们列在 listView 中:

https://github.com/ecnepsnai/BonjourSwift

这是我扫描 bonjour 服务并将它们放入本地 NetServices 数组的函数:

我正在使用这种方法获取 ip 地址,从Swift 3 如何解析 NetService IP?

有了这个 IBAction,我只想打印 ip 地址,但我的 ip 是空的,我bonjourServices[0].addresses的也是空的,addresses.adress NSData 对象

这是我的控制台输出:

你能帮我解决这个问题吗?

0 投票
1 回答
1252 浏览

swift3 - Swift 4 的不安全指针调整

我还没有找到如何将以下行(错误)调整为 Swift 4 的解决方案。关于文档,应该使用 withUnsafePointer 方法,但我找不到将 addressBytes.bytes 添加到代码中的方法。

在此处输入图像描述

0 投票
0 回答
55 浏览

swift - NetService 在调试时获得正确的 Inet 类型,但不能从存档的 IPA 工作

我正在使用网络服务并使用以下函数来获取 IPV4 和 IPV6 地址。在调试或简单 IPA 文件时获取正确的地址。但是存档后我没有得到正确的 INET 类型。

这是一个奇怪的问题。