Ich habe jetzt ein einfaches UDP-Server/Client-System für mein Spiel. Dies ist der Code der Methode, die auf Daten wartet, um es zu senden:Java Networking Blocking-Methoden und While-Schleife
while (handler.isRunning()) {
byte[] data = new byte[1024];
DatagramPacket packet = new DatagramPacket(data, data.length);
try {
socket.receive(packet);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("Server - " + new String(data).trim());
}
socket.close();
, ist die Sache also, wenn das Spiel schließt bedeutet, dass isRunning() auf false gesetzt wird, sterben alle Themen mit Ausnahme der Server und Client. Der Grund dafür ist, dass hier die socket.receive() -Methode blockiert und mindestens ein weiteres Paket empfangen muss, um zu überprüfen, ob isRunning() wahr ist, und zu beenden. Also, nachdem ich das Spiel beendet habe, möchte ich, dass dieser Thread sofort stirbt, ohne weitere Pakete zu empfangen, aber ich weiß nicht, wie ich das machen soll! Danke für die Hilfe
Danke. Aber ich habe noch eine Frage. Muss ich jedes Mal ein Zeitlimit setzen, nachdem ich ein Paket erhalten habe, oder ich mache es nur einmal? – Joza100
Ich habe es herausgefunden! – Joza100