问题标签 [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.
cocoa - 一个 NSStream 中的多个 NSStreams,具有多个流的 NSNetService
基本上我使用 NSNetService,它为您提供一对 i/o 流
但是,我需要同时使用多个流...
如何让多个 NSStream 在一个 NSStream 中工作?所以我可以让多个流使用 NSNetService
ios - 使用基于 NSStream 和 Bonjour 的 NSNetServices 点对点获取连接的服务名称
我在其他设备上获取连接的服务名称时遇到问题。我正在使用基于 Bonjour 的 NSNetServices 以及用于点对点连接的输入和输出流。我有 iPhone 和 iPad 设备。当我尝试从 iPhone 连接到 iPad 时,在 iPhone 端委托回调:
被调用。但这sender
只是它自己的服务(iPhone),所以它没有给我任何信息。我认为它应该包含其他设备服务(iPad),这样我们就可以将信息保存到我们连接的服务中。你知道我怎样才能得到连接的服务名称吗?
validation - 这是一个IP地址吗?
我正在使用NSNetService类通过 MDNS 发现来解析 IP 地址。我得到两个结果:
看起来像这样的东西:
(其中x是另一个与其他值相似的值)
还有经典的ip地址,比如:10.xx2
第一个结果也是IP地址吗?
这是我用来检索地址的代码:
ios - iOS,获取可用 Bonjour 服务的“快照”
对于我的 iOS 应用程序,我想在启动时检查是否有使用 Bonjour 广告的特定服务,如果有,请连接到该主机(而不是指定的 URL)。
我在我的代码中实现了:
如果找到服务,didFindService
则调用并通过 NSNotificationCenter 我得到结果服务主机名和端口并照常进行。
如果未找到服务,我的应用程序将保留在那里......等待......(我知道它符合预期)。
有没有办法说在例如 5 秒“中止”之后?不知何故,我需要打电话,[self.serviceBrowser stop]
但我没有看到这样的选项。我应该如何才能做到这一点?
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 )。
数据包大小有上限吗?我们可以使用蓝牙进行直播吗?
ios - 使用 NSNetService 获取远程 iOS 设备的主机名
经过几个多小时的搜索,我进入了一个看似死胡同的地方。在这种情况下,我要做的就是使用 Bonjour 获取网络的所有 iOS 设备。我这样做了
这很好用,虽然我得到的是以下内容:
我尝试使用同步端口 (62078) 来解决连接问题,因为 service.port 返回 -1。
这自己调用 netServiceWillResolve: 一点问题都没有,但是它没有到达 netServiceDidResolveAddress:
但这也没有失败。netService:didNotResolve: 也没有被调用,我相信它只是在等待解决响应。
为了支持这种说法,一旦它确实实现了方法并且实际上是 [service hostName]; 确实返回了 Yanniss-iPhone,但这发生在完全随机的时间,我让 Mac App 运行了大约半小时。什么可以调用它来运行?或者有人知道获取远程设备主机名的不同方法吗?其他答案没有回答我的问题,因为我正在寻找远程设备的主机名,而不是 Mac 设备的主机名。
相对于此,我发现当您杀死并重新启动 iTunes 以及 iTunes Helper 时,我在下面提到的日志会再次发送。这就是为什么我认为正确的日志是与 iTunes 相关的事件。很感谢任何形式的帮助!
ios - NSNetService:发布服务时处理名称冲突
根据苹果文档:
如果该服务名称与网络上的现有服务冲突,Bonjour 会选择一个新名称。...如果您的服务与网络上现有服务的名称冲突,它会自动重命名
我怎样才能实现这个功能?
我的实现:
当此服务已发布时,didNotPublish
将调用委托方法。我假设该服务不会发布?
我认为netServiceDidPublish:
应该为具有新名称的服务再次调用委托方法,但事实并非如此。
ios - iOS:当应用程序在后台时,如何保持 TCP 套接字和 NSNetService 工作
我正在做一个使用 GCDAsyncSocket、GCDAsyncUdpSocket 和 NSNetService 的 P2P VoIP 应用程序,以在网络上查找具有该应用程序的其他设备。我有一个 TCP 套接字来传输用户数据并协商 UDP 连接。
我需要在应用程序在后台时保持 NSNetService 服务发布 Bonjour,并保持一个打开的套接字以接收来自其他设备的请求。
按下 iPhone 的 HOME 键,socket 不断开但不响应,只有在重新打开应用程序时才向应用程序发送数据。通过阻塞屏幕,套接字被关闭。
关闭应用程序时要发布的 NSNetService。
我激活了后台 VoIP 应用程序、音频等选项。
我用了
有人知道如何在 iPhone 锁定时保持 Socket 和 NSNetService 工作?
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 上运行)测试我的游戏。
我有两个问题:
NSNetservice的includesPeerToPeer属性如何影响我的游戏性能?当我将属性设置为YES或NO(并且设备蓝牙关闭)时,两个设备之间的连接建立有什么区别?
当设备蓝牙保持开启时,为什么会出现性能下降?这些设备是否在蓝牙可用时通过蓝牙连接?如果是,如何限制我的设备仅通过Wi-Fi进行通信?
我将不胜感激有关此问题的任何建议。先感谢您。
swift - 如何在 Swift 的 NSNetService 上使用 getInputStream()?
NSInputStream
我正在尝试NSOutputStream
在NSNetService
. getInputStream 方法需要以下类型的参数UnsafeMutablePointer<NSInputStream?>
:
但是当我这样做时 inputStream 和 outputStream 保持为零并且成功为假:
另一个问题是我不能将它作为“NSInputStream”来处理,因为它是“UnsafeMutablePointer”类型的。当我尝试这个时,我收到以下错误:
Error:(52, 13) value of type 'UnsafeMutablePointer<NSInputStream?>' (aka 'UnsafeMutablePointer<Optional<NSInputStream>>') has no member 'delegate'
快速处理这些可变指针类型的正确方法是什么?任何帮助将不胜感激,谢谢!