Java服务器监听后应用程序挂断

时间:2019-04-17 21:50:24

标签: java serversocket java-server

我有一个JavaFX应用程序,并通过单击按钮调用以下代码。

new Thread(() -> {
    ServerSocket serverSocket = null;
    try {
        serverSocket = new ServerSocket(4558);
        Socket accept = serverSocket.accept();
    } catch (IOException e) {
        e.printStackTrace();
    }
}).run();

使用线程,我想防止UI冻结,但在serverSocket.accept()之后,应用程序未返回任何反馈。 该端口未被阻止。

有人知道为什么吗? 预先感谢!

1 个答案:

答案 0 :(得分:4)

启动Thread时,请勿调用run()方法,而应调用start()方法。

代码如下:

new Thread(() -> {
    ServerSocket serverSocket = null;
    try {
        serverSocket = new ServerSocket(4558);
        Socket accept = serverSocket.accept();
    } catch (IOException e) {
        e.printStackTrace();
    }
}).start(); // was run();