0

この質問をする前に、ここで何がうまくいかなかったのかわからないという事実のためにお詫び申し上げます.

public void setUp(){
    try {
        port = Integer.parseInt(JOptionPane.showInputDialog("Enter the port to host server on"));
        server = new ServerSocket(port);
        System.out.println(server.getLocalPort());
        connection = server.accept();
        out = new PrintWriter(connection.getOutputStream());
        in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
        connected = true;
        loop();
    } catch (Exception e) {
        connected = false;
        System.err.println(e.getMessage());
        JOptionPane.showMessageDialog(null, "Something went wrong there, be sure to use syntax:\nport: 1337\nMaybe the selected port is in use?");
        System.exit(-1);
    }
}

上記のコードは、任意のクライアントが接続できる基本的なサーバーをセットアップできるようにする必要があります。現時点では、クライアント コードは関係ないと思いますが、必要な場合はお問い合わせください。

とにかく、私の質問ですが、このメソッドを呼び出すと、ヒットするまで正常に実行されます

connection = server.accept();

その後、return と入力したかのようにメソッドが終了します。!

なぜこれが起こるのか、それを修正する方法を誰か教えてもらえますか?

また、注意してください

port = ポートの整数値 server = ServerSocket connection = Socket out = PrintWriter in = BufferedReader connected = boolean

4

1 に答える 1

3

connection = server.accept();クライアントが接続するまでスレッドを待機させるため、終了したように見えるだけかもしれません。

于 2012-06-26T20:27:21.793 に答える