问题标签 [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 回答
3312 浏览

objective-c - NSStream - 操作无法完成。拒绝连接

我正在尝试将 2 个设备与 NSNetService 耦合 -设备 A发布服务,设备 B可以浏览它并建立连接。昨天我注意到一个非常讨厌的问题。

我第一次在设备 A上启动服务并尝试打开输入/输出流,一切都按预期工作。如果我然后退出设备 A上的应用程序并重新打开它,则会创建服务(因为 netServiceDidPublish 被调用)但是当我再次尝试打开流时,我得到以下错误 Domain=NSPOSIXErrorDomain Code=61“操作无法完成。连接被拒绝。然后我可以稍等片刻,然后尝试再次打开应用程序,然后流会按预期再次打开。

我认为这与我退出应用程序时没有关闭流的事实有关。这就是为什么我尝试关闭-(void)applicationWillTerminate. 负责关闭的方法被调用,但下次我启动应用程序时,我会收到相同的错误消息。

我用 Apple 提供的 CocoaEcho 示例代码涂鸦,但找不到任何主要区别。或者我可能错了。

值得一提的是,我为服务发布创建了一个单例类。我认为这无关紧要,但永远不会知道。您可以在下面找到我用于服务发布、流打开和流关闭的一些代码。

开通服务:

服务已发布:

打开流

关闭流

希望这已经足够了。提前致谢

0 投票
2 回答
1235 浏览

objective-c - NSNetService 的 TXTRecordData 解析后为零

所以,这是我的问题:我的 iOS 应用程序正在通过本地网络宣传 NSNetService,服务发现运行良好。我也知道我需要先解决我的服务,然后才能读取它的 TXTRecordData。在服务的 -didPublish 委托方法中,我确保我的 TXTRecordData 设置了 NSDictionary。到目前为止,一切都很好...

如果调用 -netServiceDidResolveAdress 方法,则应用程序崩溃,因为 sender.TXTRecordData 为 nil。但为什么它是零?

提前感谢您的任何回答:D

0 投票
2 回答
198 浏览

ios - iOS take messages between service and client with DNSServiceBrowse and DNSServiceBrowse

I am trying to implement a conversation with iPhone/iPad devices using DNSServiceRegister to register devices and DNSServiceBrowse to find services and resolve.

How can I send messages between the 'client' and the service? there is any listener that I can put on the service to listen for messages via socket?

0 投票
2 回答
177 浏览

iphone - 关于委托和 XMLParser iPhone

我对 MAC 和 iPhone 完全陌生。我将开发一个应用程序,该应用程序执行与包含一些电影文件的 Web 服务服务器的连接以打开它。有没有人给我一些指导来学习或指导我如何开发它。现在我发现我可以使用 NSNetService 或 CFNetService 类。非常感谢。

0 投票
1 回答
219 浏览

ftp - 如何通过 Bonjour 测量设备之间的距离?

我正在尝试在蓝牙工作区的两个设备之间发送数据。

由于蓝牙无法发送文件,我想检查设备是否在蓝牙活动区域,如果是,通过wi-fi发送文件。我尝试使用 GameKit,但它不适合我的需要,原因:

  1. 我想对用户隐藏传输接口
  2. 如果可能的话,GameKit 会立即开始使用 wi-fi,我不需要

如我所见,这里最好的方法是带有 NSNetService 类的 Bonjour。但我仍然不明白如何找出设备是否在蓝牙活动区域。

由于主要思想是找出靠近用户设备的设备,因此我也不介意除蓝牙服务之外如何测量设备之间的距离的任何其他想法。

一个地方可能有很多用户,所以花费的时间越少越好。

有什么帮助吗?

谢谢!

0 投票
0 回答
530 浏览

iphone - NSNetService (bonjour) cannot find devices

I tried to make an app to communicate between iOS devices and I found "Chatty", which is based on NSNetService (Bonjour) and it works on my devices. (iPad 3Gen, iPhone 4S and iPhone 5)

However, there's a problem, some devices cannot find each other if I use the "Internet Sharing" of Mac OSX to make Wifi hotspot, or connect to a b/g/n mixed 2.4GHz router, but it work perfectly if I use the hotspot of my iPhone 5.

Can you tell me why it cannot work in these routers? I guess that Bonjour is influenced by other routers in the room which I didn't connect, is that true?

0 投票
1 回答
501 浏览

iphone - iPhone iOS如何发布UDP服务?

我正在从这里修改“Chatty”应用程序:http: //mobileorchard.com/tutorial-networking-and-bonjour-on-iphone/

我正在尝试创建一个可以快速接收来自多个客户端的信息的服务器,但实际上并没有发回任何东西。同时使用Wifi和蓝牙,所以我想最大化网络吞吐量。我认为 UDP 协议可能更快,因为没有握手/数据包序列验证。

正在更改“_chatty._tcp”。到“_chatty._udp”。在这个例子中足够了吗?我查看了 NSNetService 的文档,但没有看到任何关于 UDP 的信息。

0 投票
1 回答
517 浏览

ios - 如何检查 NSNetService 是否已停止发布

我需要找到一种方法来观察我的应用何时停止通过 bonjour 发布服务。这通常发生在设备收到呼叫或某些此类中断时。

背景:

我正在使用 GCDAsyncSocket 在同一网络中的 2 台设备之间进行通信,以便播放音乐的应用程序(支持在后台播放)。

我使用 NSNetService 为其他应用程序(客户端)广播 IP 和端口以连接到服务器。

当服务器设备接到电话时,发布停止,其他设备将无法看到该服务。

我需要观察一些特定的属性,以便我知道它何时停止并且我可以再次重新启动。

提前致谢

0 投票
1 回答
442 浏览

objective-c - TXTRecordData 中的嵌套 NSDictionary 返回 NULL

我正在使用NSNetService并希望将一些数据存储在TXTRecordData. 如果我只存储一个NSString,它可以正常工作 - 但如果我存储一个嵌套字典,则dataFromTXTRecord...返回 nil。例如:

显然我似乎在滥用 TXTRecordData 但我想了解发生了什么。我什至尝试将嵌套字典序列化为字符串,但它仍然返回 nil。TXTRecordData 似乎很特别。有谁知道为什么?

0 投票
1 回答
295 浏览

ios - 更新 TXTRecordDictionary 并不总是通知监控服务

我正在使用 bonjour 查找其他设备。每个设备用于TXTRecordData共享其名称:

每个设备都会监听变化:

大约 80% 的时间它工作 -didUpdateTXTRecordData在更改名称时调用。

有时永远不会通知其他设备。

我已经检查并在数据丢失时setTXTRecordData返回。YES

如何确保对 TXTRecordData 的更新可以用于其他设备?