diff --git a/src/application/client/Connector.java b/src/application/client/Connector.java index 7ec4e8b..46bb987 100644 --- a/src/application/client/Connector.java +++ b/src/application/client/Connector.java @@ -1,14 +1,17 @@ package application.client; +import application.PropertiesLoader; import application.client.exception.CannotConnectException; -import java.io.IOException; +import java.io.*; import java.net.Socket; public class Connector { private static final Connector instance = new Connector(); + private PropertiesLoader propertiesLoader = PropertiesLoader.getInstance(); private Socket client = null; + private boolean isConnect = false; private Connector() { } @@ -18,10 +21,37 @@ public class Connector { } public void connect(String ip) throws CannotConnectException { + this.isConnect = false; try { - this.client = new Socket(ip, 7332); + this.client = new Socket(ip, Integer.parseInt(this.propertiesLoader.get("port"))); + this.checkIfConnect(); } catch (IOException e) { throw new CannotConnectException(); } } + + private void checkIfConnect() { + String pattern = this.propertiesLoader.get("serverStatusConnect"); + + this.isConnect = pattern.equals(this.getMessage()); + } + + public String getMessage() { + String message = null; + try { + System.out.println("Trying to get input stream"); + DataInputStream inputStream = new DataInputStream(this.client.getInputStream()); + InputStreamReader inputStreamReader = new InputStreamReader(inputStream); + BufferedReader br = new BufferedReader(inputStreamReader); + message = br.readLine(); + } catch (IOException e) { + e.printStackTrace(); + } + System.out.println("Message received: "+ message); + return message; + } + + public boolean isConnect() { + return this.isConnect; + } } diff --git a/src/application/client/view/mainPage/MainPageController.java b/src/application/client/view/mainPage/MainPageController.java index 3273185..0c8a228 100644 --- a/src/application/client/view/mainPage/MainPageController.java +++ b/src/application/client/view/mainPage/MainPageController.java @@ -4,12 +4,14 @@ import application.client.Connector; import application.client.exception.CannotConnectException; import javafx.event.Event; import javafx.fxml.FXML; +import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.TextField; public class MainPageController { + public Button connectButton = null; public TextField rawFieldWithIp = null; - public Label errorLabel = null; + public Label messageLabel = null; private Connector connector = Connector.getInstance(); public MainPageController() { @@ -17,13 +19,16 @@ public class MainPageController { } @FXML - public void connectButton(Event e) { + public void connectToServer(Event e) { + this.connectButton.setText("Connecting..."); System.out.println(rawFieldWithIp.getText());; try { this.connector.connect(this.rawFieldWithIp.getText()); } catch (CannotConnectException ex) { - this.errorLabel.setText("Cannot connect"); } + + this.messageLabel.setText(this.connector.isConnect() ? "Connected" : "Not connect"); + this.connectButton.setText("Connect"); } } diff --git a/src/resource/config.properties b/src/resource/config.properties index 48a6ca5..4543094 100644 --- a/src/resource/config.properties +++ b/src/resource/config.properties @@ -1 +1,2 @@ -port=7332 \ No newline at end of file +port=7332 +serverStatusConnect=CONNECT \ No newline at end of file diff --git a/src/resource/mainPage.fxml b/src/resource/mainPage.fxml index fba4b42..7fd6499 100644 --- a/src/resource/mainPage.fxml +++ b/src/resource/mainPage.fxml @@ -17,8 +17,8 @@ -