Как получить данные из UDP с Java? - PullRequest
0 голосов
/ 11 марта 2019

Я новичок в сетевой инженерии, и у меня было следующее задание. Внешнее устройство отправляет пакет UDP на мой компьютер каждую 1 секунду. Я хочу использовать информацию в этом UDP-пакете. В качестве интерфейса сокета я использую язык программирования Java. Я пытаюсь написать код для выполнения этого задания. Однако я не вижу никаких данных, даже если я вижу пакеты UDP через Wireshark. Номер порта назначения - 876 в пакете UDP, как я вижу из Wireshark. Ниже приведен код, который я написал. Я также закрываю брандмауэры моего компьютера. Кто-нибудь может мне помочь, почему это происходит?

import java.io.*;

import java.net.*;

public class UDPReceive {

    public static void main(String[] args) throws Exception {
        DatagramSocket serverSocket = new DatagramSocket(876);
        byte[] receiveData = new byte[102];
        System.out.println("1");

        while(true){
            System.out.println("2");
            DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
            System.out.println("3");
            serverSocket.receive(receivePacket);
            System.out.println("4");
            String sentence = new String(receivePacket.getData());
            System.out.println("5");
            System.out.println(sentence);
        }
    }
}

Код не печатает "4", но печатает 1,2,3.

...