0
私は現在、(目的のために)クライアント/サーバーアプリケーションで作業しています。私はDatagramSocketのタイムアウトを適切に設定する方法と、例外を処理する方法を完全に突き止めています。Datagramsocket setSoTimeout
サーバー側のようになります。私は、タイムアウトが発生した場合に何をしたいのか
while (true) {
try {
serverSocket = new DatagramSocket(25000);
running = acceptConnection(serverSocket, ready);
serverSocket.setSoTimeout(5000);
while (running) {
receivePacket = new DatagramPacket(receiveData, receiveData.length);
try {
serverSocket.receive(receivePacket);
} catch (SocketTimeoutException e) {
System.out.println("Timed out...");
}
receiveMessage = new String(receivePacket.getData(), 0, receivePacket.getLength());
...
}
...
} catch (IOException e) {
System.err.println("");
} finally {
serverSocket.close();
}
...
}
私は別のクライアントを扱うことができるように、バックメインwhileループに行くことです。サーバーは、一度に1つのクライアントのみを処理するように設計されています。
running = false;
をキャッチブロックに追加しようとしましたが、機能しませんでした。
whileループ全体を表示してください。キャッチブロックがどのレイヤーにあるのかは不明です。 –
私は今投稿を編集して説明しました。誤解をおかけして申し訳ありません。 – ZeppRock
接続タイムアウト時にガイド付き再帰を使用してメソッドを呼び出す方法 –