【发布时间】:2011-03-29 12:11:46
【问题描述】:
我已经编写了一个简单的测试类,旨在监听 Eth 并接收所有 UDP 数据包,这些数据包转到端口5001:
public class Main {
public static void main(String[] args) throws SocketException, UnknownHostException, IOException {
DatagramSocket socket = new DatagramSocket(5001, InetAddress.getByName("255.255.255.255"));
socket.setBroadcast(true);
System.out.println("Listen on " + socket.getLocalAddress() + " from " + socket.getInetAddress() + " port " + socket.getBroadcast());
byte[] buf = new byte[512];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
while (true) {
System.out.println("Waiting for data");
socket.receive(packet);
System.out.println("Data received");
}
}
}
它不再起作用了。它打印出Waiting for data 并且永远不会继续。 tcpdump 告诉我,UDP 广播数据包来了。我究竟做错了什么?非常感谢。
【问题讨论】:
-
您是否有机会在 c2x 领域工作?