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 Antwortench 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.