現在、 Tyrusを使用して WebSocket サーバーを実装しようとしていますが、サーバーの初期化が失敗した場合 (ポートの不良など) に何が起こるかをテストするまで、すべてがうまくいきました (サーバーとクライアントの通信はうまくいきました)。
基になるコードが SocketException をスローします (権限が拒否されました)。例外は stdout に書き込まれますが、サーバーは続行し、プログラムは start() メソッドを超えて続行します。
public void runServer() {
// bad port number
Server server = new Server("localhost", 10, "/websockets", null, EchoEndpoint.class);
try {
server.start();
// this line should not be printed
System.out.println("Server started");
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Please press a key to stop the server.");
reader.readLine();
} catch (Exception e) {
System.out.println("Exception caught");
e.printStackTrace();
} finally {
server.stop();
}
}
サーバーが正常に起動したかどうかを検出する方法はありますか?
編集: ポート 10 を使用できないことはわかっています (これが、ポート 10 を試した理由です)。サーバーが実行されているかどうかを確認する必要があるだけです (何らかの方法で例外をキャッチすることによって)。(そして、ダミーのデータをクライアントに送信してテストしたくありません - これでは問題は解決しません)