问题标签 [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 投票
0 回答
158 浏览

cocoa - 一个 NSStream 中的多个 NSStreams,具有多个流的 NSNetService

基本上我使用 NSNetService,它为您提供一对 i/o 流

但是,我需要同时使用多个流...

如何让多个 NSStream 在一个 NSStream 中工作?所以我可以让多个流使用 NSNetService

0 投票
0 回答
298 浏览

ios - 使用基于 NSStream 和 Bonjour 的 NSNetServices 点对点获取连接的服务名称

我在其他设备上获取连接的服务名称时遇到问题。我正在使用基于 Bonjour 的 NSNetServices 以及用于点对点连接的输入和输出流。我有 iPhone 和 iPad 设备。当我尝试从 iPhone 连接到 iPad 时,在 iPhone 端委托回调:

被调用。但这sender只是它自己的服务(iPhone),所以它没有给我任何信息。我认为它应该包含其他设备服务(iPad),这样我们就可以将信息保存到我们连接的服务中。你知道我怎样才能得到连接的服务名称吗?

0 投票
3 回答
84 浏览

validation - 这是一个IP地址吗?

我正在使用NSNetService类通过 MDNS 发现来解析 IP 地址。我得到两个结果:

看起来像这样的东西:

(其中x是另一个与其他值相似的值)

还有经典的ip地址,比如:10.xx2

第一个结果也是IP地址吗?

这是我用来检索地址的代码:

0 投票
1 回答
71 浏览

ios - iOS,获取可用 Bonjour 服务的“快照”

对于我的 iOS 应用程序,我想在启动时检查是否有使用 Bonjour 广告的特定服务,如果有,请连接到该主机(而不是指定的 URL)。

我在我的代码中实现了:

如果找到服务,didFindService则调用并通过 NSNotificationCenter 我得到结果服务主机名和端口并照常进行。

如果未找到服务,我的应用程序将保留在那里......等待......(我知道它符合预期)。

有没有办法说在例如 5 秒“中止”之后?不知何故,我需要打电话,[self.serviceBrowser stop]但我没有看到这样的选项。我应该如何才能做到这一点?

0 投票
0 回答
279 浏览

ios - 我们可以使用核心蓝牙技术将音频流式传输到多个 ios 设备吗?

我们可以使用 Core Bluetooth 技术将音频流式传输到多个 ios 设备吗?我能够找到小型测试消息并将其发送到附近的 ios 设备。

使用核心蓝牙框架和 NSNetservice ( https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSNetService_Class/#//apple_ref/occ/instm/NSNetService/publish )。

数据包大小有上限吗?我们可以使用蓝牙进行直播吗?

0 投票
1 回答
1178 浏览

ios - 使用 NSNetService 获取远程 iOS 设备的主机名

经过几个多小时的搜索,我进入了一个看似死胡同的地方。在这种情况下,我要做的就是使用 Bonjour 获取网络的所有 iOS 设备。我这样做了

这很好用,虽然我得到的是以下内容:

我尝试使用同步端口 (62078) 来解决连接问题,因为 service.port 返回 -1。

这自己调用 netServiceWillResolve: 一点问题都没有,但是它没有到​​达 netServiceDidResolveAddress:

但这也没有失败。netService:didNotResolve: 也没有被调用,我相信它只是在等待解决响应。

为了支持这种说法,一旦它确实实现了方法并且实际上是 [service hostName]; 确实返回了 Yanniss-iPhone,但这发生在完全随机的时间,我让 Mac App 运行了大约半小时。什么可以调用它来运行?或者有人知道获取远程设备主机名的不同方法吗?其他答案没有回答我的问题,因为我正在寻找远程设备的主机名,而不是 Mac 设备的主机名。

相对于此,我发现当您杀死并重新启动 iTunes 以及 iTunes Helper 时,我在下面提到的日志会再次发送。这就是为什么我认为正确的日志是与 iTunes 相关的事件。很感谢任何形式的帮助!

0 投票
1 回答
600 浏览

ios - NSNetService:发布服务时处理名称冲突

根据苹果文档

如果该服务名称与网络上的现有服务冲突,Bonjour 会选择一个新名称。...如果您的服务与网络上现有服务的名称冲突,它会自动重命名

我怎样才能实现这个功能?

我的实现:

当此服务已发布时,didNotPublish将调用委托方法。我假设该服务不会发布?

我认为netServiceDidPublish:应该为具有新名称的服务再次调用委托方法,但事实并非如此。

0 投票
1 回答
1615 浏览

ios - iOS:当应用程序在后台时,如何保持 TCP 套接字和 NSNetService 工作

我正在做一个使用 GCDAsyncSocket、GCDAsyncUdpSocket 和 NSNetService 的 P2P VoIP 应用程序,以在网络上查找具有该应用程序的其他设备。我有一个 TCP 套接字来传输用户数据并协商 UDP 连接。

我需要在应用程序在后台时保持 NSNetService 服务发布 Bonjour,并保持一个打开的套接字以接收来自其他设备的请求。

按下 iPhone 的 HOME 键,socket 不断开但不响应,只有在重新打开应用程序时才向应用程序发送数据。通过阻塞屏幕,套接字被关闭。

关闭应用程序时要发布的 NSNetService。

我激活了后台 VoIP 应用程序、音频等选项。

我用了

有人知道如何在 iPhone 锁定时保持 Socket 和 NSNetService 工作?

0 投票
1 回答
612 浏览

ios - 了解 NSNetservice 的“includesPeerToPeer”属性

我正在为 iPhone 和 iPad 开发一款 3D Wi-Fi 多​​人游戏,而不使用任何游戏引擎。我参考了本地 Wi-Fi 多​​人游戏设备连接的“<strong>WiTap”示例(示例代码链接:WiTap)。

我发现将“<strong>includesPeerToPeer”属性设置为YES时游戏性能下降,但发现将“<strong>includesPeerToPeer”属性设置为NO时游戏性能更好。此外,当设备蓝牙打开时,游戏性能下降更多。我将此属性设置为 YES 以允许更快地发现设备(以避免此处描述的错误:错误)。我正在 iPhone 5(在 iOS 8.4 上运行)和 iPad 第 3 代(在 iOS 7.1 上运行)测试我的游戏。

我有两个问题:

  1. NSNetservice的includesPeerToPeer属性如何影响我的游戏性能?当我将属性设置为YES或NO(并且设备蓝牙关闭)时,两个设备之间的连接建立有什么区别?

  2. 当设备蓝牙保持开启时,为什么会出现性能下降?这些设备是否在蓝牙可用时通过蓝牙连接?如果是,如何限制我的设备仅通过Wi-Fi进行通信?

我将不胜感激有关此问题的任何建议。先感谢您。

0 投票
1 回答
819 浏览

swift - 如何在 Swift 的 NSNetService 上使用 getInputStream()?

NSInputStream我正在尝试NSOutputStreamNSNetService. getInputStream 方法需要以下类型的参数UnsafeMutablePointer<NSInputStream?>

但是当我这样做时 inputStream 和 outputStream 保持为零并且成功为假:

另一个问题是我不能将它作为“NSInputStream”来处理,因为它是“UnsafeMutablePointer”类型的。当我尝试这个时,我收到以下错误:

Error:(52, 13) value of type 'UnsafeMutablePointer<NSInputStream?>' (aka 'UnsafeMutablePointer<Optional<NSInputStream>>') has no member 'delegate'

快速处理这些可变指针类型的正确方法是什么?任何帮助将不胜感激,谢谢!