【Airplay_BCT】关于Bonjour的概念解答
1.什么是Bonjour?
Bonjour,也称为零配置网络,可以自动发现 IP 网络上的计算机、设备和服务。 Bonjour 使用行业标准 IP 协议,允许设备自动发现彼此,无需输入 IP 地址或配置 DNS 服务器。具体来说,Bonjour 可以在没有 DHCP 服务器的情况下自动分配 IP 地址,在没有 DNS 服务器的情况下进行名称到地址的转换,以及在没有目录服务器的情况下进行服务发现。 Bonjour 是一个开放协议,Apple 已将其作为正在进行的标准创建过程的一部分提交给 IETF。要了解更多信息,请查看 Bonjour 协议规范,其中详细介绍了构成链路本地和广域 Bonjour 的技术。
2.什么是mDNSResponder?
mDNSResponder 是一个 Bonjour 系统服务,它实现了用于发现本地网络上的服务的多播 DNS 服务发现和用于发现世界任何地方的服务的单播 DNS 服务发现。 mDNSResponder 内置于 OS X 和 iOS 中,可以作为 Windows 版 Bonjour 的一部分下载。 iTunes、iPhoto、Messages 和 Safari 等应用程序使用 mDNSResponder 实现零配置网络音乐共享、照片共享、聊天和文件共享,以及发现打印机和网络摄像头等硬件设备的远程用户界面。 mDNSResponder 还用于发现和打印到连接到 AirPort Extreme 和 Express 基站的 Bonjour 打印机和 USB 打印机。 mDNSResponder 是开源的,鼓励硬件设备制造商将 mDNSResponder 源代码直接嵌入到他们的产品中,以从零配置网络中获益
3. Bonjour 是否在多个子网之间工作?
是的。 OS X 的第一个 DNS 服务发现 (DNS-SD) 版本集中在单链路网络的多播 DNS (mDNS) 上,因为这是 IP 软件服务的最差环境。 Bonjour 使用动态 DNS 更新 (RFC 2316) 和单播 DNS 查询来启用广域服务发现。
4. 当我断开设备与网络的连接时,它是否仍然可见?
是的,有一段时间了。最终,DNS 记录达到其生存时间间隔并消失。作为APP开发者,如果你使用Bonjour连接主机,连接失败,你可以要求Bonjour重新确认记录。这个过程在 NSNetServices 和 CFNetServices 编程指南中有进一步的描述。
5. 我需要做什么才能在 iOS 中通过蓝牙支持 Bonjour?
在 iOS 5 及更高版本中,应用程序必须明确选择通过蓝牙进行服务发现,并且必须使用低级 DNS 服务发现 C API 解析服务。有关详细信息,请参阅 iOS 5 及更高版本上的蓝牙 Bonjour。
6. 我应该让服务浏览器运行多长时间?
浏览器会消耗资源,因此如果您不希望使用这些数据,则不应让它们继续运行。但是,在连接到服务时保持服务浏览器运行通常是个好主意。如果该连接失败,正在运行的浏览器的存在会促使 Bonjour 更积极地重新验证可能过时的服务条目,这可以使服务列表更加准确。
通常,如果您没有显示任何包含该列表的用户界面元素,并且您没有主动连接到任何服务,您应该停止浏览器。但是,这只是一般性建议;在任何情况下,您都应该尽一切可能为您的用户带来最佳体验。
7. Bonjour 是否支持“SOAP”RPC over HTTP?
是的。 Bonjour 定义了一种用于发现服务的新协议 (DNS-SD),但是,它对您发现的服务类型没有任何限制。因此,您可以像发现 Messages 好友和 iTunes 音乐库一样轻松地发现 SOAP 服务。换句话说,Bonjour 支持基于 HTTP 的 SOAP 以及在 TCP/IP 或 UDP/IP 之上分层的所有其他应用程序协议。
8. Bonjour 有订阅或通知机制吗?
是的。许多人似乎没有意识到 Bonjour 也进行通知的原因可能是因为它只是发现协议的固有属性。使用精心设计的发现协议,您用于发现某些信息的同一协议也可用于发现对该信息的更改。静态信息的发现,和可变信息的发现,以及可变信息何时发生变化的发现,都只是同一光谱上的不同点。有关使用 Bonjour“通知”的应用程序示例,请查看消息。当您将状态从“有空”更改为“离开”或输入状态消息时,本地网络上的所有其他消息客户端都会收到更改通知。
9、注册服务时,name参数应该传入什么?
默认情况下,您应该选择一个唯一描述服务的人类可读名称。例如,iTunes 通过组合计算机用户的名字和姓氏来选择默认的音乐共享名称,如“艾萨克·牛顿的音乐”。对于大多数硬件设备,默认服务名称应该是产品的完整品牌和型号。例如,类似“Apple MacBook Pro”的内容。请记住,这只是开箱即用的默认名称,应该允许用户自定义服务名称以区分网络上的多个设备或服务。
对于正在注册服务的 OS X 应用程序开发人员,在给定计算机上拥有该服务的一个实例可能是有意义的(而不是可能在多个帐户中运行的应用程序的每个实例一个)。在这种情况下,与其让您的应用程序呈现自己的用户界面供用户输入广告服务的名称,不如使用共享首选项中系统提供的默认名称(称为“计算机名称”)进行注册更为方便控制板。如果您在注册时为服务名称传入一个空字符串(“”),系统将自动使用“计算机名称”。传入一个空字符串也将通过自动在名称末尾附加一个数字来处理名称冲突。
但是,有些服务可以在同一台计算机上托管多个实例。例如,具有三台打印机的打印服务器应将每台打印机作为一流实体进行通告。每台打印机都应使用可有效识别打印机本身的描述性名称进行广告宣传。这一点很重要,因为名为“Marketing’s Transparency Printer”的打印机将来可能会转移到不同的打印服务器,但用户不必了解这些操作细节。他们仍然会看到以相同名称在网络上发布的相同服务,即使它现在位于不同的打印服务器上。
10、注册服务时“type”参数应该传入什么?
您必须传递“_applicationprotocol._transportprotocol”形式的字符串。当前“_transportprotocol”必须是“_tcp”或“_udp”。您的“应用程序协议”必须为 15 个字符或更少,并且应该在 IANA 注册,以便他们可以将您添加到已注册协议名称和端口号的列表中。请参阅 QA1312 以获取 OS X 使用的服务类型列表。
11、注册服务时domain参数应该传入什么?
如果您传递一个空字符串 (“”),那么您的服务将使用本地链路多播和用户选择的单播 DNS 域(如果适用)进行注册。
如果您传入“本地”,则您的服务仅使用链接本地多播注册,而不是在任何用户选择的单播 DNS 域中注册。
除了“本地”域之外,如果您有某些特殊原因想要在特定的远程域中注册您的服务,则只需传递特定的字符串。
12. 当网络中的两台设备都使用相同的服务名称时应该怎么办?
在极少数发生名称冲突的情况下,您的设备应在名称末尾添加一个数字,例如:“Apple Mac mini (2)”
调用 Bonjour API(如 DNSServiceRegister 和 CFNetServiceRegisterWithOptions)的应用程序和设备将在发生名称冲突时自动获得此名称更改行为。对于有屏幕且能够进行用户输入的设备,您可以选择提示用户输入一个更独特的名称,而不是附加数字。
13.TXT记录有什么用?
TXT 记录的具体性质及其使用方式取决于服务类型。每个服务类型将定义零个或多个名称/值对,用于存储有关每个服务的元数据。这些名称/值对的格式应如基于 DNS 的服务发现的第 6 节所述。
14. 用户在我的应用程序中浏览网络并选择他们希望使用的服务实例后,我应该将该 IP 地址保存在我的应用程序的首选项文件中,对吗?
错误的。这是一个常见的错误。使用 DHCP(以及链路本地寻址)假设服务实例明天将具有相同的 IP 地址是不安全的。地址可以改变。服务名称是服务实例的预期稳定标识符。将实例名称(名称、类型和域)保存在应用程序的首选项文件中,然后在用户每次访问该服务时按需解析它。另请注意,您不应该存储主机名和端口号,因为您不应该假设服务实例明天一定会在相同的端口号上运行。不是存储主机名,而是存储服务实例名称(名称、类型和域),然后当您在使用时解析服务实例名称时,您一定会获得最新的 IP 地址和端口号.
15. 我的硬件设备有一个用于配置的内置网络服务器。我应该使用 Bonjour 注册吗?
是的。您应该注册设备上运行的每项服务,例如 HTTP、FTP、SSH、Telnet。在 OS X 上,Safari 网络浏览器可以发现使用 Bonjour 公布的网络服务器,Windows 上的 Internet Explorer 可以在安装 Bonjour for Windows 后发现网络服务器。此外,OS X 中的终端应用程序可以发现 FTP、SSH 和 Telnet 服务器。
相关文章:
【Airplay_BCT】关于Bonjour的概念解答
1.什么是Bonjour? Bonjour,也称为零配置网络,可以自动发现 IP 网络上的计算机、设备和服务。 Bonjour 使用行业标准 IP 协议,允许设备自动发现彼此,无需输入 IP 地址或配置 DNS 服务器。具体来说,Bonjour …...
C++深入浅出(九)—— 多态
文章目录1. 多态的概念2. 多态的定义及实现🍑 多态的构成条件🍑 虚函数🍑 虚函数的重写🍑 虚函数重写的两个例外🍑 C11的override 和 final🍑 重载、覆盖(重写)、隐藏(重定义)的对比3. 抽象类🍑…...
shell学习4
目录 一、统计文本中的词频 二、压缩javascript 三、打印文件的或行中的第n个单词或列---awk 3.1 利用awk打印文件中每行中的第五个单词。 3.2 利用awk打印当前目录下的文件的权限和文件名 3.3 利用awk打印从M行到N行这个范围内的所有文本 3.4 利用awk 部分提取文件中的内…...
VR全景行业的应用价值如何呈现?
互联网高速发展的今天,多媒体所包含的种类也是越来越多,而一些较为传统的表现方式已经越来越无法满足大部分客户对展示方式的要求。而在传统的表现方式中,展现的方式无非是静态的平面图片以及动态的视频,但是他们都有一个缺点就是…...
ESP-IDF:TCP多线程并发服务器
核心代码: 核心思想就是主线程只处理socket监听功能,把数据处理部分分配到不同的线程中去处理。来了一个客户端连接,就分配新的线程去处理该客户端的数据请求。 代码: /多线程并发服务器/ #include <stdio.h> #include …...
Springboot扩展点之SmartInitializingSingleton
前言这篇文章会重点分析一下SmartInitializingSingleton扩展点的功能 特性、实现方式 、工作原理。SmartInitializingSingleton扩展点内只有一个扩展方法,且执行时机在Spring Bean的生命周期里比较靠后,很重要,但是也很简单。功能特性1、Smar…...
基于linux内核的驱动开发学习
1 驱动 定义:驱使硬件动起来的程序 种类:裸机驱动:需求分析--》查原理图--》查芯片手册--》code 系统驱动:需求分析--》查原理图--》查芯片手册--》设备树--》code --》安装到内核中…...
python3 django gunicorn
首先,Gunicorn是一个高效的Web服务器,地位相当于Java中的Tomcat。简单来说gunicorn封装了HTTP的底层实现,我们通过gunicorn启动服务,用户请求与服务相应都经过gunicorn传输。下载gunicorn的方法也比较简单,在django工程…...
专家分享 | 租赁型售楼处标准化示范区提效研究
2023年2月8日上午,优积科技邀请原金地集团北京公司 高级室内设计专业应锎经理为我司团队分享《租赁型售楼处标准化示范区提效》的专题。 此次专家分享课题加上大家踊跃讨论时间长达3小时,会上应总详细介绍了租赁型售楼处标准化示范区提效,需…...
linux之echo使用技巧
参考文章:linux基本功系列-echo命令实战一、echo 命令是什么?作用: echo命令能将指定文本显示在Linux命令行上,或者通过重定向符写入到指定的文件中。语 法:echo [-ne][字符串] / echo [–help][–version]补充说明&am…...
Keras实例教程(7)之构建模型的第三种方式
多年以前,在TensorFlow中搭建深度学习模型对于很多人来说其实仍然是比较困难的。相比之下,Keras作为独立于TensorFlow的一种深度学习框架则要简单很多。在TensorFlow与PyTorch的竞争中逐渐式微的情况下,TensorFlow团队终于宣布Keras将成为在tensorflow2.0中构建和训练模型的…...
【JUC并发编程】18 CopyOnWriteArrayList源码也就够看2分钟
文章目录1、CopyOnWriteArrayList概述2、原理 / 源码1)构造函数2、add()3)get()4)remove()5)iterator()1、CopyOnWriteArrayList概述 CopyOnWriteArrayList相当于线程安全的ArrayList,底层是一个可变数组。 特点如下…...
如何优雅的实现回调函数?
本篇文章又是一期优雅的代码编程介绍———回调函数。 传统的nodejs编程都是这样的 const fs require(fs) fs.readFile(test.txt,utf8, function(err, dataStr){if(err){} }) 嵌套层级如果多了就成回调地狱了。如果我们将这种风格的代码转换成这样呢? const fs …...
3GPP-NR Band20标准定义频点和信道(3GPP V17.7.0 (2022-12))
Reference test frequencies for NR operating band n20 Table 4.3.1.1.1.20-1: Test frequencies for NRoperating band n20 and SCS 15 kHz CBW [MHz]carrierBandwidth...
Excel表格的公式不想显示出来,可以这样操作
在制作Excel表格的时候,很多人做数据会用到函数公式,这些编辑都是默认可以看到的。 但有时候我们不想让他人看到自己的计算思路和所用公式,有没有办法可以隐藏公式,只显示数据呢?答案是肯定的,今天我们就来…...
【零基础入门前端系列】—语义化标签、实体字符、视频、音频(八)
【零基础入门前端系列】—语义化标签、实体字符、视频、音频(八) 一、什么是HTML语义化标签 语义化的标签,旨在让标签有自己的含义 如上代码:p标签与span标签的区别之一就是,p标签的含义是段落而span标签没有独特的…...
超详细讲解线性表和顺序表!!
超详细讲解线性表和顺序表!!线性表顺序表顺序表的概念及结构静态顺序表动态顺序表顺序表接口实现1、创建2、初始化3、扩容4、尾插5、打印6、销毁7、尾删8、头插9、头删10、插入任意位置11、删除任意位置12、查找13、修改线性表 线性表(linea…...
大数据之-Nifi-Nifi的安装_启动_认识Nifi的操作台---大数据之Nifi工作笔记0002
然后我们看一下如何安装nifi 这个上一节已经说了 然后看一下环境准备,这个自己去安装就可以了,需要jdk,1.8就可以了,然后 maven安装上就可以了 然后去下载,这里下载Linux版本的 1.9.2的版本比较稳定 下载以后,避免端口冲突要修改端口默认是8080,修改为58080 然后启动很简单,看…...
【大数据clickhouse】clickhouse 常用查询优化策略详解
一、前言 在上一篇我们分享了clickhouse的常用的语法规则优化策略,这些优化规则更多属于引擎自带的优化策略,开发过程中只需尽量遵守即可,然而,在开发过程中,使用clickhouse更多将面临各种查询sql的编写甚至复杂sql的…...
【Java项目】基于Java+MySQL+Tomcat+maven+Servlet的个人博客系统的完整分析
✨哈喽,进来的小伙伴们,你们好耶!✨ 🛰️🛰️系列专栏:【Java项目】 ✈️✈️本篇内容:个人博客系统前后端分离实现! 🚀🚀个人代码托管github:博客系统源码地址ÿ…...
XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...
从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践
作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...
【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验
Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...
离线语音识别方案分析
随着人工智能技术的不断发展,语音识别技术也得到了广泛的应用,从智能家居到车载系统,语音识别正在改变我们与设备的交互方式。尤其是离线语音识别,由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力,广…...
第八部分:阶段项目 6:构建 React 前端应用
现在,是时候将你学到的 React 基础知识付诸实践,构建一个简单的前端应用来模拟与后端 API 的交互了。在这个阶段,你可以先使用模拟数据,或者如果你的后端 API(阶段项目 5)已经搭建好,可以直接连…...
