Я создаю приложение javafx и должен объединить его с ServerSocket, но когда я использую функцию accept of ServerSocket, приложение отключается.я ожидал, что приложение дождется подключения Socket и запускает следующий метод.Я понятия не имею, что происходит, но когда я комментирую строку ServerSocket.accept (), она работает просто отлично.Я пытался прочитать API-документ ServerSocket, но я не нашел в этом помощи, или, может быть, я слишком скучный.
Main
package test;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
import java.net.ServerSocket;
public class ProblemTest extends Application {
public static void main(String[] args) throws Exception{
launch(args);
}
public void start(Stage primaryStage)throws Exception{
FXMLLoader loader = new FXMLLoader(getClass().getResource("test.fxml"));
Parent root= loader.load();
Scene scene=new Scene(root);
primaryStage.setScene(scene);
primaryStage.show();
ServerSocket server=new ServerSocket(8000);
server.accept();
}
}
Файл Fxml:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Menu?>
<?import javafx.scene.control.MenuBar?>
<?import javafx.scene.control.MenuItem?>
<?import javafx.scene.control.TextArea?>
<?import javafx.scene.layout.VBox?>
<VBox prefHeight="400.0" prefWidth="640.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1">
<children>
<MenuBar>
<menus>
<Menu mnemonicParsing="false" text="File">
<items>
<MenuItem mnemonicParsing="false" text="Clear" />
<MenuItem mnemonicParsing="false" text="Close" />
</items>
</Menu>
</menus>
</MenuBar>
<TextArea prefHeight="377.0" prefWidth="640.0" />
</children>
</VBox>
```