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

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


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

有人知道为什么吗?
提前致谢!

最佳答案

启动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();

关于java - Java服务器监听后应用程序挂断,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55736463/

10-10 03:42