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 = 端口服务器的整数 = ServerSocket 连接 = Socket out = PrintWriter in = BufferedReader connected = boolean

4

1 回答 1

3

也许它看起来只是结束了,因为它connection = server.accept();会让线程等到客户端连接。

于 2012-06-26T20:27:21.793 回答