0

現在、 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 を試した理由です)。サーバーが実行されているかどうかを確認する必要があるだけです (何らかの方法で例外をキャッチすることによって)。(そして、ダミーのデータをクライアントに送信してテストしたくありません - これでは問題は解決しません)

4

1 に答える 1

0

ポート番号 '10' は、通常のユーザーが使用するには小さすぎます。特権ユーザーであるか、1024 より大きいポート番号を使用する必要があります。

Server server = new Server("localhost", 1025, "/websockets", null, EchoEndpoint.class)
于 2016-05-08T08:59:41.790 に答える