我需要在每个网络接口上广播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数据包的正确和有效方法是什么?相关推荐

  1. 【源码+图片素材】Java王者荣耀游戏开发_开发Java游戏项目【王者荣耀】1天搞定!!!腾讯游戏_Java课程设计_Java实战项目_Java初级项目

    王者荣耀是当下热门手游之一,小伙伴们是否想过如何制作一款属于自己的王者荣耀游戏呢? 本课程讲解了一个王者荣耀游戏的详细编写流程,即使你是刚入门Java的新手,只要你简单掌握了该游戏所需要的JavaSE ...

  2. java动态加载jar时,jar中还有第三方jar无法加载的解决方法

    java动态加载jar时,jar中还有第三方jar无法加载的解决方法 当java插件化开发时,即一个java程序在运行的情况下动态加载另一个jar,网上大多数的方法如下 public static v ...

  3. 随机从mysql中读取_如何实现MySQL表数据随机读取?从mysql表中读取随机数据

    文章转自 http://blog.efbase.org/2006/10/16/244/ 如何实现MySQL表数据随机读取?从mysql表中读取随机数据?以前在群里讨论过这个问题,比较的有意思.mysq ...

  4. 2017年的双十一又一次刷新了记录,交易创建峰值32.5万笔/秒、支付峰值25.6万笔/秒。而这样的交易和支付等记录,都会形成实时订单Feed数据流,汇入数据运营平台的主动服务系统中去。数据运营平台的

    2017年的双十一又一次刷新了记录,交易创建峰值32.5万笔/秒.支付峰值25.6万笔/秒.而这样的交易和支付等记录,都会形成实时订单Feed数据流,汇入数据运营平台的主动服务系统中去.数据运营平台的 ...

  5. idea如何打开pom引用依赖_IDEA使用Maven管理项目包,缺少pom文件中引入的依赖包...

    1. 说在前面 最近和其他项目团队合作过程中,由于使用 idea 进行开发,之前也没有接触过太多,本着记录分享的心态,虽有此文.主要说两点:第一,使用 maven 构建项目的过程中,在 pom 文件引 ...

  6. java 包命名_【Java】包的命名规则

    命名规范 包:所有单词的字母小写,之后每个单词用-隔开,如 org.nemo.demo 常量:所有单词的字母大写,之后每个单词用_隔开,如 FLAG 类:所有单词的首字母大写,如 TestJava p ...

  7. java数组里套数组_用JAVA进行Json数据解析(对象数组的相互嵌套)

    这段时间我们在做一个英语翻译软件的小小小APP,涉及到了对Json数据的解析,所以特地来总结一下! 假设我们要对如下数据进行解析,其实在平时,返回的Json数据是很乱的,很难分清数据的关系,这是经过相 ...

  8. java抓取页面表格_用java实现爬虫抓取网页中的表格数据功能源码

    [实例简介] 使用java代码基于MyEclipse开发环境实现爬虫抓取网页中的表格数据,将抓取到的数据在控制台打印出来,需要后续处理的话可以在打印的地方对数据进行操作.包解压后导入MyEclipse ...

  9. java list 前100个_实现java 中 list集合中有几十万条数据,每100条为一组取出

    解决"java 中 list集合中有几十万条数据,每100条为一组取出来如何实现,求代码!!!"的问题. 具体解决方案如下: /** * 实现java 中 list集合中有几十万条 ...

最新文章

  1. 报名 | 大数据如何提升保险客户体验思享会
  2. androidsettitle方法_Android使用setCustomTitle()方法自定义对话框标题
  3. 属性为nil的时候测试是否crash  nil是不会崩溃的
  4. 安装完成Fedora 15 LXDE 定制版后的操作
  5. html中视频播放完后可以跳到另一个html
  6. PC软件开发技术之二:用C#开发基于自动化接口的OPC客户端
  7. CF385C Bear and Prime Numbers 数学
  8. Journey Of Code组组员贡献率
  9. 完成这些事情后再做决定 、
  10. java socket中文编码_Java Socket 中的编码问题
  11. 小王Java学习打卡day07——模板方法设计,接口,多态
  12. 东芝Toshiba DP-3003 一体机驱动
  13. JS验证邮箱格式、信用码、税号和注册号
  14. 深入理解Attention及变种(四)
  15. 策略篇--量化投资之双均线策略
  16. Chinese Std GBT7714-2015.ens EndNote 样式文件
  17. 计算机自带录音机格式,Windows自带录音机
  18. 【Android Dialog】Dialog
  19. 什么是POSIX标准
  20. 人工智能技术并非已经完全成熟,而进入发展应用的阶段

热门文章

  1. Python中的random模块
  2. matlab 开 闭 代码,C++中的MATLAB函数〔闭锁〕
  3. 如何规划自己的博士五年生活?
  4. 数据中台实战(一):以B2B电商亿订为例谈数据埋点(产品经理视角)
  5. 初探目前最火的鸿蒙系统,跑了个 “hello world”!
  6. 使用Python绘制热图的库
  7. 机器学习算法与Python实践之(三)支持向量机(SVM)进阶
  8. Python的MySQL操作
  9. Matplotlib实例教程(五)绘制散点图
  10. 词云制作 Python