DatagramSocket设置SocketAddress为127.0.0.1后,无法将数据包发送到多播地址

无_名 2015-02-27 05:17:17
我在一个服务端用MulticastSocket建立一个用于接收多播消息的服务,加入的多播地址为 230.0.0.1 端口为30000。
发送方我知道用MulticastSocket 将数据包DatagramPacket地址设置为 230.0.0.1 端口为30000 可以多播出去,我试了,服务端也确实可以。
现在问题是我在网上看到用DatagramSocket 可以将数据包发送到多播地址

DatagramSocket ds=new DatagramSocket();
DatagramPacket dp=new DatagramPacket(new byte[0], 0, new InetSocketAddress("230.0.0.1", 30000));
ds.send(dp);

我这样试了,服务端MulticastSocket也确实收到了数据包。这里DatagramSocket 获取到的SocketAddress是默认的0.0.0.0
现在问题来了:
DatagramSocket 是可以设置监听地址和端口的,如果设置成127.0.0.1后,发觉数据包就无法发送到多播地址了。如果设置成网卡的ip 如192.168.11.2(现在网卡的IP) 又可以发送到多播地址,就是设置成127.0.0.1不行,代码如下

InetSocketAddress isa=new InetSocketAddress("127.0.0.1", 40000);
DatagramSocket ds=new DatagramSocket(isa);
DatagramPacket dp=new DatagramPacket(new byte[0], 0, new InetSocketAddress("230.0.0.1", 30000));
ds.send(dp);

本人对网络编程并不很清楚,不知道是不是127.0.0.1有什么特殊的。理论上来说DatagramSocket 设置InetSocketAddress只是影响自己接收消息(ip和端口)的监听位置,为什么会影响消息的发送呢?
分数不多,望大家知道的不吝赐教。
...全文
494 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
无_名 2015-02-27
  • 打赏
  • 举报
回复
引用 1 楼 chenjing0320 的回复:
多播地址的范围是从224.0.0.0到239.255.255.255。 写127.0.0.1应该不行吧。
InetSocketAddress isa=new InetSocketAddress("127.0.0.1", 40000); DatagramSocket ds=new DatagramSocket(isa); 这个InetSocketAddress 对象设置的127.0.0.1跟多播地址没关系吧,只是个监听地址吧? 又不是MulticastSocket的joinGroup方法设置多播地址
chenjing0320 2015-02-27
  • 打赏
  • 举报
回复
多播地址的范围是从224.0.0.0到239.255.255.255。 写127.0.0.1应该不行吧。
基于栅格空间的三维路径规划与轨迹平滑方法研究及其在无人机自主导航中的应用(Matlab代码实现)内容概要:本文围绕基于栅格空间的三维路径规划与轨迹平滑方法展开研究,重点探讨其在无人机自主导航中的具体应用。通过构建三维栅格地图对飞行环境进行建模,结合智能优化算法(如A*、Dijkstra或启发式搜索)实现初步路径规划,并引入轨迹平滑技术(如样条插值、贝塞尔曲线或优化算法)消除路径中的尖锐转折,提升飞行安全性与平滑性。研究涵盖复杂三维环境下的避障策略、路径成本函数设计、多约束条件处理以及算法性能对比分析,最终通过Matlab仿真验证所提方法的有效性与实用性。; 适合人群:具备一定编程基础和算法理解能力,从事无人机、机器人、自动驾驶或路径规划相关领域的科研人员及工程技术人员,尤其适合研究生及工作1-3年的研发人员。; 使用场景及目标:① 实现复杂三维环境下无人机的安全自主飞行路径规划;② 学习并掌握基于栅格的路径建模与搜索算法;③ 理解轨迹平滑技术在实际工程中的应用价值与实现方法;④ 借助Matlab代码进行算法仿真与性能评估,支撑科研或项目开发。; 阅读建议:建议读者结合Matlab代码实例,深入理解路径规划与轨迹平滑的算法细节,动手复现并调试程序,通过调整环境参数和算法参数观察结果变化,从而加深对理论方法与工程实践之间联系的理解。

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧