이제 내 게임을위한 간단한 UDP 서버/클라이언트 시스템을 만들었습니다. 이 데이터가 전송 될 때까지 기다리는 방법의 코드입니다 :자바 네트워킹 블로킹 방법과 while 루프
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();
그래서 것은이 게임이 isRunning는()가 false로 설정됩니다 것을 의미 닫을 때, 모든 스레드는 제외 사망 서버 및 클라이언트. 이유는 여기에 socket.receive() 메소드가 차단되어 적어도 하나 이상의 패킷을 받아야 isRunning()이 true인지 종료되었는지 확인해야하기 때문입니다. 그래서 게임을 끝내고 나면,이 스레드가 패킷을 더 이상 수신하지 않고 즉시 죽어 버리고 싶습니다.하지만 그 일을하는 방법을 모른다. 도움을 주셔서 감사합니다.
감사합니다. 하지만 여전히 질문이 있습니다. 패킷을받은 후 매번 시간 제한을 설정해야합니까, 아니면 한 번만합니까? – Joza100
나는 그것을 이해했다! – Joza100