mDNS实现之Bonjour与Avahi(一)——win/linux/arm交叉编译
0.Part2:mDNS实现之Bonjour与Avahi(二)——win/linux/arm交叉编译_平凡之路-CSDN博客1.BonjourBonjour - Apple Developer● 源码(mDNSResponder-878.70.2):https://opensource.apple.com/tarballs/mDNSResponder/● Bin&SDK:https://developer.apple.com/download/all/?q=Bonjour%20SDK%20for%20WindowsBonjour-winBonjour...https://blog.csdn.net/qq_23958061/article/details/122092864?spm=1001.2014.3001.5502
1.Windows
Bonjour - Apple Developerhttps://developer.apple.com/bonjour/
Bonjour SDK for Windowshttps://developer.apple.com/download/all/?q=Bonjour%20SDK%20for%20Windows
下载上面官网sdk,安装(Bonjour服务启动,依赖于mDNSResponder.exe进程),C#在工程中添加COM组件即可使用。
源码参考(C#参考DNSServiceBrowser.NET工程):
Source Codehttps://opensource.apple.com/tarballs/mDNSResponder/
源码目录分析可参考其他文章:
mDNSResponder介绍与移植_Aero's WorkSpace.-CSDN博客_mdnsdmDNSResponder项目是Bonjour的一个组成部分。 Bonjour是法语“你好”的意思。苹果的Bonjour软件源自正IETF零配置网络工作。零配置工作有三个要求:分配IP地址(即使没有分配DHCP服务器的IP地址)2.提供名称到地址的转换(即使没有DNS服务器)3.在网络上发现相关的网络服务(同样,没有其他的基础协议)对于1,通过自分配的本地链接地址实现。对于2,通过多...https://blog.csdn.net/yuangc/article/details/101676976
2.Linux及ARM交叉编译、部署
linux参考下面文章:[从0到1搭嵌入式工程]局域网自动发现功能,苹果Bonjour/mdnsResponder移植_SevenFighting的专栏-CSDN博客在局域网内通信,就必须知道对方的IP地址和端口,苹果开源的mdnsResponder,就是利用mdns组播协议,通过服务域名,来获取相应ip地址的一种方式。比如我们有一个摄像头,在联网的情况下,同一个局域网下的app想发现这个摄像机,并和摄像机建立联系。这样一个需求,需要摄像头调用mDNS_Register,通过传参告知mdns库,在指定的port上注册一个did._ipcxx._tcp....https://blog.csdn.net/bingyu880101/article/details/81563319 至于ARM交叉编译时,前提是你已有ARM平台交叉编译工具链(可能有点废话了),需要修改的部分就是我们的mDNSResponder-878.70.2(根据下载的源码版本)下的mDNSPosix下的Makefile,要做的修改如下(删除两个CFLAGS_OS、指定CC、指定STRIP):
ARM上的部署(实际上是参考该Makefile的install指令):
①将mDNSPosix/build/prod的可执行文件“mdnsd”拷贝到嵌入式ARM平台板卡的“/usr/sbin”目录下;
②将mDNSPosix/build/prod下的libdns_sd.so、libnss_mdns-0.2.so直接拷贝到“/usr/lib/”目录下;
③将Clients/build下的dns-sd拷贝到合适目录;
ARM上的使用(通过dns-sd可执行文件):
①首先将mdnsd作为daemon启动(可通过ln -s添加到init.d下自动启动);
②在应用需要时,参数启动dns-sd,如“./dns-sd -R hxx _lvds local 8888 172.100.19.251”,如下图所示(win上发现arm上的mdns服务)
3.额外的(Avahi)
linux上专门的mDNS库(不支持windows),可以参考(实际上博主在ARM上采用该种实现,win上采用bonjour实现,两者是兼容的,上述对bonjour在arm上的编译及部署只是一些尝试):
http://www.avahi.org/http://www.avahi.org/ Avahi相比于Bonjour的实现,维基百科上这么说:
=======================================
Avahi vs. Bonjour[edit]
The Avahi project started in 2004 because Apple's Zeroconf implementation, Bonjour, used the GPL-incompatible Apple Public Source License. In 2006 Apple relicensed parts of Bonjour under the Apache License.[2]
Avahi's performance resembles that of Bonjour, sometimes exceeding it; however Avahi can lose services when managing large numbers of requests simultaneously.[3]
========================================
Avahi 项目始于 2004 年,因为Apple的 Zeroconf 实现Bonjour使用了与 GPL 不兼容的Apple Public Source License。2006 年,Apple在Apache 许可下重新许可了 Bonjour 的部分内容。[2]
Avahi的表现类似于卓悦,有时甚至超过它;然而,当同时管理大量请求时,Avahi 可能会丢失服务。[3]
mDNS实现之Bonjour与Avahi(一)——win/linux/arm交叉编译相关推荐
- mDNS实现之Bonjour与Avahi(二)——win/linux/arm交叉编译
0.Part1: mDNS实现之Bonjour与Avahi(一)--win/linux/arm交叉编译_平凡之路-CSDN博客官网:Bonjour - Apple Developerhttps://d ...
- minio下载及安装:win linux平台
minio下载及安装:win linux平台 docker run -p 9000:9000 -v /mnt/data:/data minio/minio server /data minio.exe ...
- maya linux 安装教程视频,Maya快捷键插件增强工具ZooTools Pro 2.2.4 for Maya Win/Linux+ Assets pack 2.3+视频教程...
Maya快捷键插件增强工具ZooTools Pro 2.2.4 for Maya Win/Linux+ Assets pack 2.3+视频教程 ZooTools Pro 2.2.4(以前称为C3dC ...
- 【win+linux双系统如何正确卸载linux系统】
前言 win+linux双系统卸载linux用了1个多小时,现在分享一下踩坑经历以及卸载的正确姿势. 卸载流程 1.在 windows 下删除 ubuntu的所有分区 win+x 选择磁盘管理,找到所 ...
- 【泛微ecology】E-Mobile 7 win+linux 安装包(版本20210409)
E-Mobile 7 win+linux 安装包(版本20210409) 含 emp_patch_20210526 更新包 链接:https://pan.baidu.com/s/1gj_Cj8Zq6I ...
- 双硬盘下安装win+linux关于开机引导的问题
前面写的文章只使用于win+linux在同一个硬盘上,因为现在很多笔记本都是固态+机械!!! 本人是固态安装win,机械安装linux,各自安装好系统后发现每次开机默认直接进入win,也无法进入lin ...
- 有没有一种文件系统可以支持所有的操作系统(Win+Linux+Mac)而且支持大文件而且不需要辅助软件呢?
有没有一种文件系统可以支持所有的操作系统(Win+Linux+Mac)而且支持大文件而且不需要辅助软件呢? 在Mac, Linux, Windows下,没有一种文件系统能够同时支持他们三者,还能支持大 ...
- Typora (free in Win Linux ) 0.9.86
@Typora (free in Win & Linux ) Typora (free in Win & Linux ) 0.9.86 Because the Chinese inpu ...
- Notepad++又作死,国产文本编辑器Notepad--发布,支持Win/Linux/Mac平台
来源丨经授权转自 扩展迷EXTFANS(ID:infinitydaily) 1月25日,Notepad++作者发布推文声称在工具中启用了一个新功能: 「如果用户不同意软件内的政治观点,代码中会被添加随 ...
最新文章
- Flask rst 文档转换为html格式文件
- 屏幕元素属性的控制盒屏幕事件的中止
- BCGSoft Demo示例展示:控件示例集合(1/2)
- centos后台登录ftp_「vscode remote ssh 免登录」mac
- fpu测试_I510400性能及温度测试详解
- 二叉搜索树相关知识及应用操作
- mysql双主配置及其注意事项
- 人口增长模型 源代码
- 百度收录批量查询-免费百度整站批量收录查询工具
- Linux 10个主流发行版本
- JavaME证书的制作和介绍
- 既是回文数又是质数c语言,素数回文——输出两整数之间所有既是回文数又是素数的数 C++实现...
- 2010年水瓶座的运势
- 如何打开CMD以及简单Dos命令
- bcm54xx系列phy光口电口的配置方法
- 使用Sentinel LDK(Linux)对程序(*.so文件)加壳
- 当当网1000本同类别图书价格对比:matplotlib基本使用,plot-线段,bar-条形图,pie-饼图
- LLC同步控制or异步控制
- PLC控制气缸,如何使用二位五通和三位五通控制电磁阀控制
- windows防火墙是干什么的_防火墙的作用有哪些?Windows防火墙的主要作用是什么?...