- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我正在为我一直从事的 iOS 项目开发的应用程序中通过 WiFi 使用 Bonjour(准确地说是 NSNetServiceBrowser)。
然而,尽管注意到在 Why does NSNetServiceBrowser find unpublished services in iPhone OS? 的出色响应中提出的问题我仍然在使用 NSNetSericeBrowser 时遇到一些困难。
我的设置如下:
但是,我遇到了以下问题:-
我一直遇到的问题很奇怪,因为 Bonjour 在 90% 的时间里都能正常工作……只有那 10% 的时间破坏了我的应用程序的可靠性!令人恼火的是,上述所有问题都可以通过双击主页按钮并强制关闭应用程序,然后重新运行来解决。再次运行后,它总能找到正确的 session 或正确发布。
回避这个问题的一种方法是在无线网络发生变化时拆除并重新启动 NSNetServiceBrowser……但这看起来非常困惑且没有必要。令人沮丧的是,Bonjour 是一个高级 API,没有任何真正的调整和测试选项。
关于如何解决问题 1-4 的任何想法?
谢谢!
最佳答案
好的,我设法解决了它——如果其他人在使用 Bonjour/NSNetServiceBrowser 时遇到这类可靠性问题,这里是我的解决方案:
<强>1。按如下方式安排您的 NSNetService 和 NSNetServiceBrowsers:
[netService scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[netServiceBrowser scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
<强>2。确保从 NSNetServiceBrowserDelegate 实现 netServiceBrowser:didNotSearch: 方法。
当 NSNetService 无法发布时(无论出于何种原因),这将被触发。我所做的是在其中放置一个 UIAlertView 以向用户显示一条消息,说明搜索无法完成,他们应该检查他们的网络连接。浏览似乎一旦能够自动重新启动(但我需要调查一下,也许我的代码中的某些东西正在使它发生......)
关于iphone - iOS 上的 NSNetServiceBrowser/Bonjour 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7645613/
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
我想开发一个可以运行的 Android 应用程序 黑莓剧本。应用程序需要找到其他 本地网络上运行相同应用程序的设备。 我正在考虑实现 Bonjour/Zeroconf/jmDNS 用于查找设备的协议(
通过DNS-SD发现服务后,该主机的地址将如何准确解析,并且花费的时间/开销会大大增加吗? 另外,如果我使用的是JmDNS或Bonjour,则有serviceFound和serviceResolved
我的问题是关于“本地网络上文件服务器服务的自动发现”。 我想实现一个基本上是文件服务器的服务并将其发布在本地网络上。连接到本地网络的客户端 PC 应该自动找到该服务并映射(挂载)网络驱动器,无需用户干
有没有一种简单的方法可以扫描给定网络的Bonjour/Zeroconf服务? 我有一组计算机(Linux,Windows,Apple),并且想自动生成Intranet中所有可用的具有Zeroconf功
谁能解释一下从 iPhone OS 3.0 开始,bonjour 如何通过蓝牙工作? 文档称,即使 Wi-fi 关闭且蓝牙打开,应用程序中使用的 Bonjour API 也能正常工作。它还表示,蓝牙
我正在开发一个 iPhone 应用程序,它允许用户使用 Bonjour 协议(protocol)连接到其他 iPhone。其中一个用户托管服务器并发布他的 bonjour 服务,而其他客户端用户发现他
Bonjour 提供“DNSSSD.browse(serviceType,callBackObject)”方法来浏览特定类型的服务。如果找到给定类型的服务,Bonjour 将调用“callBackOb
Bonjour 是否允许一台 iOS 设备同时向多台 iOS 设备发送数据或图像? I am able to detect number of iOS devices over a wifi netw
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,vis
我正在尝试在 Swift3 中实现 Bonjour NetServiceBrowser,以便在我的网络上发现主机。 当我使用以下命令在终端中手动搜索时,我会找到主机。 dns-sd -B 但是,当我尝
这看起来太基础了,以至于人们会为它大喊大叫,在网络上搜索一无所获,但我已经在多个网络和计算机上对其进行了测试。我们遇到一个问题,我们使用 .local url 访问资源非常慢。如果我们使用直接 IP
我注意到 Pasteboard 是一款适用于 iOS 的剪贴板应用程序,它可以在后台运行 Bonjour 服务。我不知道他们是如何实现的,所以我在互联网上搜索,然后发现它在后台播放无声文件。但现在不是
我知道 iOS 的 Bonjour 实现(NSNetService、NSNetServiceBrowser)在本地网络上开箱即用。 文档说可以设置 Bonjour DNS 服务器以允许通过 Inter
我想写一个可以搜索Bonjour的C程序网络上启用的设备。 基本上我们有一个网络摄像机,它支持 Bonjour 协议(protocol)。我想用 C 编写 API,可以搜索这些启用了 Bonjour
使用jmdns 3.4.1,我可以看到局域网中机器发布的服务,我也可以创建一个服务并注册它,这样我就可以在我的机器上看到它。但是,当我在局域网的另一台机器上新建服务时,在我的机器上是看不到的。我在另一
我正在编写一个可以在电脑和手机上运行的软件。 该服务使用 HTTP API 进行通信,并将使用 Zeroconf 通过本地网络发布。 最初我使用 _http._tcp. 发布了我的服务作为服务类型,但
我想知道是否可以在 iPhone OS 3.0 或更高版本中直接通过蓝牙使用 bonjour,而不使用 GameKit。谁能提供一些例子吗? 最佳答案 只需宣布服务即可,就像 tc. has said
问题说明了一切。 有人可以告诉我这是否可能以及如何实现吗? 我已经有了我想要 bonjour 名称的设备的 IP 地址和 MAC 地址... 最佳答案 假设您正在查找 .local 域中的计算机,并且
我正在尝试调试 Bonjour 网络例程,每次运行它时,Mac 的防火墙都会询问“您希望应用程序 ProjectName 接受传入的网络连接吗?” 我单击“允许”,为其提供管理员名称和密码,然后该应用
我是一名优秀的程序员,十分优秀!