MulticastSocket绑定端口的问题
2015-11-15 01:39
267 查看
该文章由 Binkery 发布于 Binkery技术博客 http://www.binkery.com 如转载请注明出处,该文章的链接地址为 http://www.binkery.com/archives/319.html
mDNS的Java实现分析
JmDNS实现了java的mDNS。在使用这个jar包开发Android应用的时候,我存在一个疑问。我使用jmDNS打开了5353这个端口,并且通过这个端口监听或者发送一些信息。那么如果有两外一个应用,它也用这个工具,使用相同的方式,使用相似的服务。那么是不是会有端口号冲突的问题?如果冲突了,这个端口号是怎么处理的?
不过经过了一番搜索,看源代码,还有请教同事。我现在的理解和之前的理解还是有点差别的。先从Java层去分析一下jmDNS是怎么实现的。
首先使用java.net提供的MulticastSocket类来创建一个socket。
MulticastSocket mSocket = new MulticastSocket(5353);
然后选加入到某一个组群里。这个组群被定义成224.0.0.251,必须是这个。
mSocket.joinGroup(InetAddress.getByName("224.0.0.251").getHostAddress());
然后起一个线程,接收数据包。
DatagramPacket packet = new DatagramPacket(buff,buff.length); mSocket.receive(packet);
发送我就不说了,收到数据包后解析我也不说了。
说一下端口冲突的问题。因为使用的是UDP协议,所以MulticastSocket是可以实现多个对象,重复绑定同一个端口的。至少在我目前测试的结果,这样子做是合法的。
分享到:QQ空间新浪微博腾讯微博人人网微信
本站文章除注明转载外,均为本站原创或翻译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:Binkery技术博客 [http://www.binkery.com]
本文地址:http://www.binkery.com/archives/319.html
androidjavaudp协议组播
分享到
一键分享
QQ空间
新浪微博
百度云收藏
微信
人人网
腾讯微博
百度相册
开心网
腾讯朋友
百度贴吧
豆瓣网
百度新首页
QQ好友
和讯微博
百度中心
更多...
mDNS的Java实现分析
JmDNS实现了java的mDNS。在使用这个jar包开发Android应用的时候,我存在一个疑问。我使用jmDNS打开了5353这个端口,并且通过这个端口监听或者发送一些信息。那么如果有两外一个应用,它也用这个工具,使用相同的方式,使用相似的服务。那么是不是会有端口号冲突的问题?如果冲突了,这个端口号是怎么处理的?
不过经过了一番搜索,看源代码,还有请教同事。我现在的理解和之前的理解还是有点差别的。先从Java层去分析一下jmDNS是怎么实现的。
首先使用java.net提供的MulticastSocket类来创建一个socket。
MulticastSocket mSocket = new MulticastSocket(5353);
然后选加入到某一个组群里。这个组群被定义成224.0.0.251,必须是这个。
mSocket.joinGroup(InetAddress.getByName("224.0.0.251").getHostAddress());
然后起一个线程,接收数据包。
DatagramPacket packet = new DatagramPacket(buff,buff.length); mSocket.receive(packet);
发送我就不说了,收到数据包后解析我也不说了。
说一下端口冲突的问题。因为使用的是UDP协议,所以MulticastSocket是可以实现多个对象,重复绑定同一个端口的。至少在我目前测试的结果,这样子做是合法的。
分享到:QQ空间新浪微博腾讯微博人人网微信
本站文章除注明转载外,均为本站原创或翻译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:Binkery技术博客 [http://www.binkery.com]
本文地址:http://www.binkery.com/archives/319.html
androidjavaudp协议组播
分享到
一键分享
QQ空间
新浪微博
百度云收藏
微信
人人网
腾讯微博
百度相册
开心网
腾讯朋友
百度贴吧
豆瓣网
百度新首页
QQ好友
和讯微博
百度中心
更多...
相关文章推荐
- 手脱Aspack变形壳1
- 书-Programming Game AI by Example
- 操作系统-mac安装linux(Ubuntu)
- 【2015/11/15】为了解决账号登录显示用户名和登录之后退出的问题倒腾一晚上!
- Fedora 19下安装rpmfusion源
- Android开发:组播(多播)与广播
- Android热更新实现原理
- QT字体的设置
- C/C++文件输入输出操作——FILE*、fstream、windowsAPI
- 「喵神成长史」『布局篇』FrameLayout(帧布局)
- <base href="<%=basePath %>"> 设置整个项目的全局变量
- 带参数启动另外一个exe程序
- SQL大数据量查询的优化
- 读书笔记——《暗时间》
- 博客开张
- MySQL备份与恢复
- android怎么打开wifi的组播功能
- Android适配器——ArrayAdapter的各种重载
- 不同场景下 MySQL 的迁移方案
- 《并查集》hdu acm 5.1.7 c++ map的使用