【发布时间】:2014-04-26 20:33:56
【问题描述】:
我正在创建一个发送广播消息的基本 android 应用程序。在我的笔记本电脑中,我有一台服务器正在监听所有广播消息。但是包裹从未收到,我不知道为什么(如果我将它发送到特定的服务器 ip,服务器会收到数据包)。这是我的应用程序和服务器代码。
服务器:
byte[] buffer = new byte[2048];
int port = 8063;
DatagramSocket dsocket = new DatagramSocket(port);
dsocket.setBroadcast(true);
DatagramPacket packet = new DatagramPacket(buffer,
buffer.length);
while (true)
{
System.out.println("Receiving...");
dsocket.receive(packet);
System.out.println("received...");
String msg = new String(buffer, 0, packet.getLength());
System.out.println(packet.getAddress().getHostName()
+ ": " + msg);
packet.setLength(buffer.length);
}
应用:
socket = new DatagramSocket();
socket.setBroadcast(true);
DatagramPacket packet = new DatagramPacket(new byte[]{0,1,2,3},4,
InetAddress.getByName("172.16.255.255"), 8063);
socket.send(packet);
关于为什么服务器没有收到包裹的任何建议?
编辑:
大学网络好像屏蔽了广播包,我们用4g试了一下,效果很好。
提前谢谢你
【问题讨论】:
标签: java android sockets udp datagram