Я настраиваю почтовый локальный сервис и создал интерфейс сервера с 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();
}
}
}