【问题标题】:Why wont ServerSocket.accept() work?为什么 ServerSocket.accept() 不能工作?
【发布时间】:2012-06-26 20:14:45
【问题描述】:

在我问这个问题之前,我要道歉,因为我不知道这里出了什么问题,所以我只是提前说这可能会让人头疼。

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 = 端口的整数 服务器 = 服务器套接字 连接 = 套接字 out = PrintWriter in = BufferedReader 已连接 = 布尔值

【问题讨论】:

  • 也许它看起来只是结束了,因为connection = server.accept(); 会让线程等待客户端连接。你有一些错误信息吗?
  • 好的,我去看看。
  • 啊,将其发布为答案,以便我接受它,非常感谢这个社区永远不会让我失望! :)

标签: java sockets serversocket


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2011-07-27
    • 1970-01-01
    • 1970-01-01
    • 2011-05-11
    • 1970-01-01
    • 2012-01-15
    • 2016-07-16
    • 2019-01-04
    • 2020-09-03
    相关资源
    最近更新 更多