bonjour怎么下载 android 怎么使用

macbook怎么打开bonjour_百度知道
macbook怎么打开bonjour
我有更好的答案
其他Mac OS X在弹出菜单中单击[Rendezvous]。从打印机型号列表中选择连接的打印机名.5单击[默认值]。若未显示机器名称,然后单击[继续]。在Mac OS X 10,请选择与网络环境(AppleTalk等)相应的图标。若网络上存在数个AppleTalk区域.3或更高版本中使用Bonjour进行打印。也可使用以太网和无线局域网连接。启动打印机安装程序。在Mac OS X 10。Mac OS X 10,打印机语言不会自动更改,请选择打印机所属的区域,然后单击[添加]。在Mac OS X 10。Mac OS X 10,为它选择适当的设置.5中,从[打印机名称]列表中选择正在使用的打印机和Bonjour[种类]。退出打印机安装实用程序或系统首选设置.5中,启动系统参考并单击[打印与传真]。当通过Rendezvous连接到Macintosh计算机执行打印时按照如下操作步骤在Mac OS X 10。单击[添加]或[]按钮.4单击在“连接”栏显示有“Bonjour”的打印机.4中,将出现可安装选购件窗口。请选择要设置的选购件。请在打印前用本机上的控制面板将打印机语言更改为[自动检测]或[PS]。当通过Rendezvous连接到Macintosh计算机执行打印时,打印机语言不会自动更改。请在打印前用本机上的控制面板将打印机语言更改为[自动检测]或[PS].2
采纳率:55%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。mac bonjour 怎么使用_百度知道
mac bonjour 怎么使用
我有更好的答案
单击[添加]或[]按钮,打印机语言不会自动更改,为它选择适当的设置。Mac OS X 10,请选择打印机所属的区域.3或更高版本中使用Bonjour进行打印。也可使用以太网和无线局域网连接。启动打印机安装程序。在Mac OS X 10。当通过Rendezvous连接到Macintosh计算机执行打印时,请选择与网络环境(AppleTalk等)相应的图标.4中,将出现可安装选购件窗口。请选择要设置的选购件.5中,从[打印机名称]列表中选择正在使用的打印机和Bonjour[种类]。退出打印机安装实用程序或系统首选设置.5单击[默认值]。若未显示机器名称,然后单击[继续]。在Mac OS X 10。Mac OS X 10.5中,启动系统参考并单击[打印与传真]。其他Mac OS X在弹出菜单中单击[Rendezvous]。从打印机型号列表中选择连接的打印机名,然后单击[添加]。在Mac OS X 10.4单击在“连接”栏显示有“Bonjour”的打印机。若网络上存在数个AppleTalk区域.2按照如下操作步骤在Mac OS X 10。请在打印前用本机上的控制面板将打印机语言更改为[自动检测]或[PS]。当通过Rendezvous连接到Macintosh计算机执行打印时,打印机语言不会自动更改。请在打印前用本机上的控制面板将打印机语言更改为[自动检测]或[PS]
【0元入学,两周免费试听】
主营:培训【Python+人工智能,Java大数据,HTML5】
为您推荐:
其他类似问题
bonjour的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。Android Says Bonjour_论文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Android Says Bonjour
中国最大最早的专业内容网站|
总评分0.0|
试读已结束,如果需要继续阅读或下载,敬请购买
定制HR最喜欢的简历
你可能喜欢
您可以上传图片描述问题
联系电话:
请填写真实有效的信息,以便工作人员联系您,我们为您严格保密。下次自动登录
现在的位置:
& 综合 & 正文
Android Says Bonjour
很高兴能在农历蛇年刚开始的这期《程序员》杂志上继续为读者奉上的故事。初来咋到,首先要向大家说声”你好“。有意思的是,也很通人情,从开始,它会说”“了。不过它说得是不是原汁原味的法语腔呢?来看下文。
一背景知识介绍
是法语中的之意。它是公司为基于组播域名服务的开放性零配置网络标准所起的名字。使用的设备在网络中自动组播它们自己的服务信息并监听其它设备的服务信息。设备之间就像在打招呼,这也是该技术命名为的原因。使得局域网中的系统和服务即使在没有网络管理员的情况下也很容易被找到。
举一个简单的例子:在局域网中,如果要进行打印服务,必须先知道打印服务器的地址。此地址一般由部门的人负责分配,然后他还得全员发邮件以公示此地址。有了以后,打印服务器自己会依据零配置网络标准在局域网内部找到一个可用的并注册一个打印服务,名为“”之类的。当客户端需要打印服务时,会先搜索网络内部的打印服务器。由于不知道打印服务器的地址,客户端只能根据诸如的名字去查找打印机。在的帮助下,客户端最终能找到这台注册了“”名字的打印机,并获得它的地址以及端口号。
从角度来看,该技术主要解决了三个问题:
:即为主机分配。的处理比较简单,即每个主机在网络内部的地址可选范围内找一个,然后查看网络内部是否有其他主机再用。如果该没有被分配的话,它将使用此。
:解决的是名和地址的对应关系。采用的是技术,即查询消息将通过组播方式发送。一旦网络内部某个机器发现查询的机器名和自己设置的一样,就回复这条请求。此外,还拓展了的用途,即除了能查找外,还支持对的查找。不过,的有一个限制,即网络内部不能有重名的或。
:基于上面的工作,它使得应用程序能查找到网络内部的服务,并解析该服务对应的地址和端口号。应用程序一旦得到服务的地址和端口号,就可以直接和该服务建立交互关系。
技术在以及、上都得到了广泛应用。为了进一步推广,通过开源工程将其开源出来。在平台上,它将生成一个后台程序。在平台上(或者说支持的平台)它是一个名为的程序。不过,不论是还是,应用开发者要做的仅仅是利用的向它们发起服务注册、服务查询和服务解析等请求并接收来自它们的处理结果。
下面我们将介绍中使用最多的三个函数,它们分别是服务注册、服务查询和服务解析。理解这三个函数的功能也是理解的基础。
使用必须包含如下的头文件和动态库,并连接到:
#include &dns_sd.h&
//必须包含此头文件
libmdnssd.so
//链接到此so
中,服务注册的为,原型如图所示:
该函数的解释如下:
:代表一个未初始化的实体。其类型是指针。该参数最终由函数分配内存并初始化。
:表示当网络内部有重名服务时的冲突处理。默认是按顺序修改服务名。例如要注册的服务名为“”,当检测到重名冲突时,就可改名为“”。
:表示该服务输出到主机的哪些网络接口上。值表示仅对本机支持,也就是该服务的用在接口上。
:表示服务名,为空的话就取机器名。
:服务类型,用字符串表达。要求格式为服务名传输协议,例如。目前传输协议仅支持和。
和一般都为空。
表示该服务的端口。如果为的话,会自动分配一个。
以及字符串用来描述该服务。一般都设置为空。
:设置回调函数。该服注册的请求结果都会通过它回调给客户端。
:上下文指针,由应用程序设置。
当客户端需要搜索网络内部特定服务时,需要使用,其原型如图所示:
、、、以及含义与一样。
:在本函数中没有作用。
:为处理结果的回调通知接口。
当客户端想获得指定服务的和端口号时,需要使用,其原型如图所示:
、和都从函数的处理结果中获得。
用于通知的处理结果。该回调函数将返回服务的地址和端口号。
以上介绍的三个是的核心。不过中的会是怎么个说法呢?
几乎能肯定的是,想跑在平台上,还需要一番定制。不过这套定制不是针对本身,而是针对的使用。平台的架构可由图表达:
由图可知,拓展了原有的架构,改变如下:
在中增加了对象,它一方面通过和上层对象通信,另一方面通过和通信(也是基于的跨进程通信)。从角度来看,它是最懂的”人“了。
进程新增。是的缩写。通过和位于中的通信。
借用通过技术和的通信。
总之,在平台中,应用程序要借助其他三个进程(、、)才能享受到好处。不过,这么繁杂的进程间通信会不会影响效率呢?
答案是肯定的。但就如的本意一样,它仅是通过打一声招呼以了解网络内服务是否存在以及一些简单信息。一旦客户端通过获取到服务的地址和端口后,后续客户端和服务的交互就属于私密范畴(即客户端通过服务的地址直接和其建立连接)了。从这个角度来看,上的这点效率损失实属无伤大雅。
另外,上架构的设计对读者们来说还有一个启示:如果手机厂商想定制一些功能,最好先对现有的架构有充分了解。这样才能结合自己的需求,将功能模块合理得集成到架构中以更有效得发挥其功用。
下面来看看中架构中的几位重要成员。
在架构中扮演着转换器的角色:
一方面它处理来自的请求,并通过将其转换成能懂的“语言”以驱动其工作。
另一方面它接收来自的信息,并把它们通报给。
图所示为的家族成员示意图。
图家族成员
由图可知:
的内部类用于和进程通信,它将调用前面提到的。
内部针对每个都会建立一个对象,该对象通过的指针保存在一个中。
是注册的。
下面将简单介绍的运行过程,其主要工作可分成三步:
创建对象,其内部会创建对象,而对象将启动一个线程用于和通信,并接收来自的请求。
启动完毕后将向发送命令。
响应应用程序的请求,向发送其他命令,例如等。将最终处理这些请求。
先来看第一步,当构造时,会创建一个对象,代码如图所示:
由图可知:
的线程将调用其函数,该函数通过方式侦听包括在内的信息。这部分代码属于基本的编程。对大部分读者来说,难度应该不大。
当发送命令后,的将执行的函数。
将启动,其所使用的方法颇具特色,如图所示:
图代码示意
图中,宏代表字符串。了解的读者,看完图,您能很快知道启动的方法吗?
当发送注册服务请求时,的函数将被调用,代码如图所示:
内部将把请求发送给去处理,处理的结果通过返回,该函数最终会通过把信息传递给去处理。
介绍暂且到此,感兴趣的读者不妨亲自看看代码以加深对用法的理解。
对所有来说,才是背后的,其用法(当然,是客户端的封装类的用法)也是在文档中白纸黑字列出来的。的内部结构可由图表示:
图内部结构示意图
图列出了中的几个重要成员,其中:
从派生。这个类也是的特色产品,由文件生成。
内部工作将通过及内部的三个状态对象(、、)驱动。让笔者颇为惊讶的是,整个的代码只有来行。而且从理论上说,不存在什么状态转换。状态机的出现使得代码理解会相对困难。还好只有三个状态。读者不妨以它为契机,了解一下中的用法。因为它在系统很多地方都被用到。在那些代码中,状态就不止三个了。
通过和中的建立通信。
类用来通知来自的消息。
当然,费劲心力得到的最重要的产出物就是了。它就是在中的代表。其包含的内容有服务名、服务类型、地址和端口号等。
由于篇幅原因,本文不拟对展开详细讨论了。接下来,本文将介绍中一个关于使用的小例子。
新增了一个例子用于向开发者介绍平台中的使用方法。相关文档位于。案例的源码位于源码根目录下。
该例描述了一个简单的聊天程序,故其命名为。在此例中的作用就是注册并搜索网络内的聊天服务。所以,在本例中有一个进程将通过的函数注册一个聊天服务。相关代码如图所示:
图注册聊天服务
由图可知:
应用程序要注册的服务将通过类来表达。结合前文背景知识,在此中,最重要就是服务的端口号、服务名(根据的要求,网络内部不能有同名服务)以及服务的类型。
接着,应用程序通过的函数注册此服务。注册的结果通过的内部接口类来通知。
两人聊天才有意义,所以另外一个运行着的客户端进程将搜索网络内部的”“服务,相关代码如图所示:
图寻找“”服务
由图可知:
应用进程只需调用的函数并传递要找的服务类型即可。搜索的结果通过的内部接口类返回。
注意,只能根据服务类型进行搜索。当网络中有多个同属于一种服务类型(本例中,服务类型是)的服务时,应用程序还需根据返回的信息进行筛选。这部分代码如图所示:
由图可知,的结果通过接口类提供的回调函数返回。注意其中函数对同类型服务的筛选处理(值得特别指出的是,中并未对此处极易疏忽的地方做任何说明)。
当客户端成功找到服务后,下一步工作就是解析该服务的地址和端口号。这是通过的函数(注意图中的红框)来完成的。这个函数的处理结果将通过定义的另外一个接口类返回。
通过对的研究,读者会发现:
总体而言,的使用并不复杂,相关类也比较简单。
唯一特别之处是其主要都被设计成异步调用的方式,这将增大应用程序开发的难度。请读取务必注意这点。
本文对中的实现进行了一番介绍。的原理知识还请读者阅读。该网站是关于基础知识的入口,包含《》、《》等文档。
另外,中的主要是为了支持功能。与其类似的还有技术中使用的()。相比而言,不仅实现了,还在后续客户端和服务端交互方面支持标准协议,极大方便了客户端和服务端的代码逻辑实现。所以,笔者在此提醒开发者,如果想使用技术,要特别注意只能简化服务注册及寻找这一步骤,后续还需重点考虑客户端和服务端交互的协议及实现。
关于DLNA,读者可参考笔者的博客。
&&&&推荐文章:
【上篇】【下篇】Bonjour 到底有什么用··怎么用?_百度知道
Bonjour 到底有什么用··怎么用?
更新软件的时候看见了这东西``到底是干什么的`有个什么用``不要用苹果官方的来解释``那个我看了``俺笨``看不明白``直白点给我解释```
我有更好的答案
以及另外設備上的服務。 「Bonjour」是法語「你好」或「早(午)安」之意,由「bon」(好)、「jour」(天)兩個辭彙所組成Bonjour,原名Rendezvous,是蘋果電腦公司在其開發的作業系統Mac OS X10.2版本之後引入的伺服器搜索協議所使用的一個商標名。適用於LAN, Bonjour使用多點傳送域名系統服務記錄來定位各種設備,比如印表機或者其他計算機
采纳率:71%
为您推荐:
其他类似问题
bonjour的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 bonjour法语怎么读 的文章

 

随机推荐