Wie unterbreche ich einen blockierenden Aufruf von receive () [duplicate] des UDP-Sockets?

Diese Frage hat hier bereits eine Antwort:

Wie kann eine Thread-Blockierung bei Socket-E / A-Operationen sofort beendet werden? 2 Antworten

ch habe einen UDP-Server, der Pakete von einem Client abhör

socket = new DatagramSocket(port);

while (isListen) {
    byte[] data = new byte[1024];
    DatagramPacket packet = new DatagramPacket(data, 0, data.length);
    socket.receive(packet);
}

Dasreceive() -Methode wird ewig warten, bis ein Paket empfangen wird. Kann man aufhören, auf den Empfang zu warten? Ich kann ein @ setzboolean isListen, um die Schleife zu stoppen. Wenn der Socket hingegen wartet, wartet er für immer, wenn kein Paket vom Client gesendet wird.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage