应用程序在 java serversocket 侦听后挂起

Application hang up after java serversocket listens

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

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