我想使用Java从UDP消息中获取数据:
所以我做了这样的事情:
public class RunnableAlarmes implements Runnable {
private byte[] buffer;
private DatagramSocket datagramSocket;
private DatagramPacket datagramPacket;
public RunnableAlarmes(int port){ //port = 7001
try {
datagramSocket = new DatagramSocket(port);
buffer = new byte[2048];
datagramPacket = new DatagramPacket(buffer,buffer.length);
}catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void run() {
while (true){
try {
datagramSocket.receive(datagramPacket);
String s = new String(buffer,0,datagramPacket.getLength());
System.out.println(datagramPacket.getAddress().getHostName() + ": "
+ s);
} catch (IOException e) {
e.printStackTrace();
}
}
}
在我的主机中,我只是启动线程。
没有任何东西从System.out中发出:/
谢谢您的帮助。
编辑:这是我的主要
public class Runner {
public static void main(String[] args) {
new Thread(new RunnableAlarmes(7001)).start();
}
}
编辑2:所以我想我发现问题出在哪里: 该消息是通过广播发送的,所以也许这就是为什么我无法捕获它的原因。你知道这样做的方法吗?