从UDP广播Java

时间:2018-12-11 04:52:38

标签: java udp

我想使用Java从UDP消息中获取数据:

消息进入端口7001 enter image description here

我想提取这些数据。 这里有一些WireShark屏幕截图。 enter image description here

所以我做了这样的事情:

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:所以我想我发现问题出在哪里: 该消息是通过广播发送的,所以也许这就是为什么我无法捕获它的原因。你知道这样做的方法吗?

0 个答案:

没有答案