互联网上的 iOS Bonjour

标签 ios networking bonjour

我知道 iOS 的 Bonjour 实现(NSNetService、NSNetServiceBrowser)在本地网络上开箱即用。

文档说可以设置 Bonjour DNS 服务器以允许通过 Internet 连接用户,所以我的问题是:

  1. 什么是 Bonjour DNS 服务器接口(interface)?有没有我可以从中着手的示例?
  2. DNS 服务器是否负责对等点的初始握手\连接,其余(发送\接收数据)将直接在对等点之间进行?
  3. DNS Server 是否提供 NAT 打洞机制?

谢谢!

最佳答案

Bonjour 本地服务发现基于“多播 DNS”。每当某个客户端想要查找有关网络或网络服务的任何信息时,它都会使用多播地址 224.0.0.251,这意味着只有该多播组中的客户端才能一起使用 bonjour。 244.0.0/24 IP 地址空间被 RFC5771 定义为“本地网络控制 block ”,不会被转发到您的本地网络之外。

但是 实际上,Bonjour 只是一种基于 DNS 的方法 - 您可以告诉 NSServiceBrowser 在非本地域中搜索,这只需要 DNS 服务器响应特定请求(如中所述Manually Adding DNS-SD Service Discovery Records to an Existing Name Server ) 这允许通过 Internet 发现服务,如果您使 DNS 更新工作(Setting up a Bonjour Name Server),甚至可以进行服务注册,但仅此而已 - 您必须自己关心打洞。

所以给自己一个 BIND 服务器并开始尝试 ;)

关于互联网上的 iOS Bonjour,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6241623/

相关文章:

ios - 如何增加特定部分中特定单元格的高度

Java:从 TCP 流读取 XML 文件而不将其写入磁盘

c# - 如何即时编辑任何事件的 tcp 数据包然后重新发送?

sql-server-2008 - 如何确定通信链路故障 TCP 提供程序 : The specified network name is no longer available? 的根本原因

ios - 如何让联网的软件意识到自己?

iphone - 通过 Bonjure Logic 问题可靠地发送大文件

javascript - 更改 NativeScript TabView 默认行为

ios - 如何将C/C++代码移植到iOS中?

ios - PAN 与 Linux、iOS、蓝牙、Bonjour、GameKit——可能吗?

ios - XIB 中的 UIViewController?