java广播数据包发送_在Java中广播UDP数据包的正确和有效方法是什么?
我需要在每个网络接口上广播UDP数据包.起初,我尝试播放到255.255.255.255,没有结果,后来我发现这个“已被弃用了大约20年”.因此,我尝试在每个网络接口上进行迭代,以获取接口的广播地址,然后将UDP数据包发送到该地址.
仍然,以下代码:
public static Collection getBroadcastAddresses() {
try {
Collection result = new LinkedList();
Enumeration nets = NetworkInterface.getNetworkInterfaces();
for (NetworkInterface netint : Collections.list(nets))
for (InterfaceAddress address : netint.getInterfaceAddresses()) {
InetAddress broadcastAddress = address.getBroadcast();
if (broadcastAddress != null)
result.add(broadcastAddress);
}
return result;
} catch (SocketException e) {
throw new RuntimeException(e);
}
}
public static void broadcast(int port, DatagramPacket packet,
DatagramSocket socket, PrintWriter logger) throws IOException {
packet.setPort(port);
for (InetAddress address : getBroadcastAddresses()) {
logger.println("Broadcasting to: "+address);
packet.setAddress(address);
socket.send(packet);
}
}
打印这个东西:
Broadcasting to: /0.255.255.255
Broadcasting to: /255.255.255.255
Broadcasting to: /255.255.255.255
Broadcasting to: /255.255.255.255
Broadcasting to: /255.255.255.255
这真的很烦人.我是否应该为每个网络接口获取IP地址和网络掩码,并执行按位操作以“构建”正确的广播地址? This seems to me like Unix socket programming in C …是否有一种干净的Java方式可以巧妙地将可怜的UDP数据包传递给所有聚集我的网络的好友?
编辑:在网上搜索,结果发现这次我的代码没有被破坏.相反,JVM是.您从InterfaceAddress.getBroadcast()获得的数据是不一致的,至少在Windows 7下是这样.请参阅例如this和this:解决方案似乎设置了Java系统属性,以使其更喜欢IPv4 over IPv6,但这不是为我工作.即使有建议的解决方法,我在每次不同的运行中得到不同的结果,并且因为我得到的广播地址显然是随机的,我怀疑我从未定义的状态存储器位置获取数据.认真,严肃……
InterfaceAddress实现已中断.现在我遇到了一个很大的问题,因为我不知道如何开发这个网络应用程序. IP多播广泛不受支持.我只想在没有用户将其写在文本字段上的情况下向正确的UDP广播地址广播一些垃圾.
java广播数据包发送_在Java中广播UDP数据包的正确和有效方法是什么?相关推荐
- 【源码+图片素材】Java王者荣耀游戏开发_开发Java游戏项目【王者荣耀】1天搞定!!!腾讯游戏_Java课程设计_Java实战项目_Java初级项目
王者荣耀是当下热门手游之一,小伙伴们是否想过如何制作一款属于自己的王者荣耀游戏呢? 本课程讲解了一个王者荣耀游戏的详细编写流程,即使你是刚入门Java的新手,只要你简单掌握了该游戏所需要的JavaSE ...
- java动态加载jar时,jar中还有第三方jar无法加载的解决方法
java动态加载jar时,jar中还有第三方jar无法加载的解决方法 当java插件化开发时,即一个java程序在运行的情况下动态加载另一个jar,网上大多数的方法如下 public static v ...
- 随机从mysql中读取_如何实现MySQL表数据随机读取?从mysql表中读取随机数据
文章转自 http://blog.efbase.org/2006/10/16/244/ 如何实现MySQL表数据随机读取?从mysql表中读取随机数据?以前在群里讨论过这个问题,比较的有意思.mysq ...
- 2017年的双十一又一次刷新了记录,交易创建峰值32.5万笔/秒、支付峰值25.6万笔/秒。而这样的交易和支付等记录,都会形成实时订单Feed数据流,汇入数据运营平台的主动服务系统中去。数据运营平台的
2017年的双十一又一次刷新了记录,交易创建峰值32.5万笔/秒.支付峰值25.6万笔/秒.而这样的交易和支付等记录,都会形成实时订单Feed数据流,汇入数据运营平台的主动服务系统中去.数据运营平台的 ...
- idea如何打开pom引用依赖_IDEA使用Maven管理项目包,缺少pom文件中引入的依赖包...
1. 说在前面 最近和其他项目团队合作过程中,由于使用 idea 进行开发,之前也没有接触过太多,本着记录分享的心态,虽有此文.主要说两点:第一,使用 maven 构建项目的过程中,在 pom 文件引 ...
- java 包命名_【Java】包的命名规则
命名规范 包:所有单词的字母小写,之后每个单词用-隔开,如 org.nemo.demo 常量:所有单词的字母大写,之后每个单词用_隔开,如 FLAG 类:所有单词的首字母大写,如 TestJava p ...
- java数组里套数组_用JAVA进行Json数据解析(对象数组的相互嵌套)
这段时间我们在做一个英语翻译软件的小小小APP,涉及到了对Json数据的解析,所以特地来总结一下! 假设我们要对如下数据进行解析,其实在平时,返回的Json数据是很乱的,很难分清数据的关系,这是经过相 ...
- java抓取页面表格_用java实现爬虫抓取网页中的表格数据功能源码
[实例简介] 使用java代码基于MyEclipse开发环境实现爬虫抓取网页中的表格数据,将抓取到的数据在控制台打印出来,需要后续处理的话可以在打印的地方对数据进行操作.包解压后导入MyEclipse ...
- java list 前100个_实现java 中 list集合中有几十万条数据,每100条为一组取出
解决"java 中 list集合中有几十万条数据,每100条为一组取出来如何实现,求代码!!!"的问题. 具体解决方案如下: /** * 实现java 中 list集合中有几十万条 ...
最新文章
- 报名 | 大数据如何提升保险客户体验思享会
- androidsettitle方法_Android使用setCustomTitle()方法自定义对话框标题
- 属性为nil的时候测试是否crash nil是不会崩溃的
- 安装完成Fedora 15 LXDE 定制版后的操作
- html中视频播放完后可以跳到另一个html
- PC软件开发技术之二:用C#开发基于自动化接口的OPC客户端
- CF385C Bear and Prime Numbers 数学
- Journey Of Code组组员贡献率
- 完成这些事情后再做决定 、
- java socket中文编码_Java Socket 中的编码问题
- 小王Java学习打卡day07——模板方法设计,接口,多态
- 东芝Toshiba DP-3003 一体机驱动
- JS验证邮箱格式、信用码、税号和注册号
- 深入理解Attention及变种(四)
- 策略篇--量化投资之双均线策略
- Chinese Std GBT7714-2015.ens EndNote 样式文件
- 计算机自带录音机格式,Windows自带录音机
- 【Android Dialog】Dialog
- 什么是POSIX标准
- 人工智能技术并非已经完全成熟,而进入发展应用的阶段