java UDP 广播 无法接收的问题 在线等~~求好人帮帮 要奔溃了

???kuma 2017-09-08 06:20:07
我想用java实现 广播 255.255.255.255 想所有网络发送 我是这样写的
	byte[] msg = new String("{\"ip\":\"192.168.155.3\",\"port\":\"8811\"}").getBytes();
byte[] bs = new byte[] { (byte) 255, (byte) 255, (byte) 255, (byte) 255 };
InetAddress inetAddr = InetAddress.getByAddress(bs);
DatagramSocket client = new DatagramSocket();
client.setBroadcast(true);//开启广播
client.setTrafficClass(0x04);//可靠的
DatagramPacket sendPack = new DatagramPacket(msg, msg.length, inetAddr, 46953);
client.setSoTimeout(0);
client.send(sendPack);
client.close();


但是无法广播到 如果把255.255.255.255 修改成为 设备的ip 或者 名字 就可以广播到

这个是官方的示例 python 写的 我看不懂 大神帮忙看看 我的java 实现是不是少些了什么东西 ~~~
# -*- coding: utf-8 -*-
import socket, json
local_ip = '192.168.155.3' # 电脑端地址
local_port = 31500
local = (local_ip, local_port)
remote = ("255.255.255.255", 46953)
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(local)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.sendto(json.dumps({"ip":local_ip, "port": local_port}), remote)
while True:
data, addr = s.recvfrom(2048)
if not data:
print "client has exist"
break
print "received:", data, "from", addr
s.close()
...全文
173 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
rayw0ng 2017-09-09
  • 打赏
  • 举报
回复
接收端绑定到 0.0.0.0

67,542

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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