Я новичок в сетевой инженерии, и у меня было следующее задание. Внешнее устройство отправляет пакет 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.