Сокет клиентского сервера JavaFX - PullRequest
0 голосов
/ 27 декабря 2018

Я настраиваю почтовый локальный сервис и создал интерфейс сервера с JavaFX.

Проблема в том, что когда я запускаю сервер, он показывает интерфейс, но он заблокирован и неработать любым способом.

Кажется, только графика не появляется, бэкэнд работает.Действительно, если я подключаю клиента и делаю запрос, все работает.Это может быть проблема потока?

Это главное:

FXMLLoader loader = new FXMLLoader(getClass().getResource("MainView.fxml"));
Parent root = loader.load();

stage.setTitle("Server Log");
stage.setScene(new Scene(root, 490, 309));
stage.centerOnScreen();
stage.show();


ServerModel m = new ServerModel(); //create Model
ServerController c = loader.getController(); //get controller
c.setModel(m);
m.start(); //the problem is here, if I comment this line It shows the server interface but obviously the backend doesn't work.

Конструктор ServerModel таков:

public ServerModel() {
    try {
        serversocket = new ServerSocket(5888); 
    } catch (IOException e) {
        Logger.getLogger(ServerModel.class.getName()).log(Level.SEVERE, null, e);
    }
}

и это метод запускамодели, которая посещает клиентский запрос на сокет:

public void start(){
    Socket socket = null;
    while (!closed){ //server main loop
        try{
            socket = serversocket.accept();
            //... (here there would be threads that communicate with client and set closed to true)
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...