diff --git a/src/main/java/seng302/discoveryServer/DiscoveryServerClient.java b/src/main/java/seng302/discoveryServer/DiscoveryServerClient.java index 4454d25c..80521951 100644 --- a/src/main/java/seng302/discoveryServer/DiscoveryServerClient.java +++ b/src/main/java/seng302/discoveryServer/DiscoveryServerClient.java @@ -19,7 +19,7 @@ import java.util.Timer; import java.util.TimerTask; public class DiscoveryServerClient { - private final Integer UPDATE_INTERVAL_MS = 700; + private final Integer UPDATE_INTERVAL_MS = 1000; private static String roomCode = null; private Timer serverListingUpdateTimer; diff --git a/src/main/java/seng302/gameServer/MainServerThread.java b/src/main/java/seng302/gameServer/MainServerThread.java index 1da16205..63acf89a 100644 --- a/src/main/java/seng302/gameServer/MainServerThread.java +++ b/src/main/java/seng302/gameServer/MainServerThread.java @@ -26,6 +26,7 @@ import seng302.utilities.GeoUtility; public class MainServerThread implements Runnable, ClientConnectionDelegate { private static final int PORT = 4942; + private static int selectedPort = PORT; private static final Integer CLIENT_UPDATES_PER_SECOND = 60; private Logger logger = LoggerFactory.getLogger(MainServerThread.class); private boolean terminated; @@ -40,7 +41,8 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate { public MainServerThread() { new GameState(); try { - serverSocket = new ServerSocket(PORT); + serverSocket = new ServerSocket(0); + selectedPort = serverSocket.getLocalPort(); } catch (IOException e) { logger.trace("IO error in server thread handler upon trying to make new server socket", 0); @@ -66,7 +68,7 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate { .setMapName(regattaXMLData.getCourseName()) .setCapacity(capacity) .setNumberOfPlayers(numPlayers - 1) - .registerGame(PORT, regattaXMLData.getRegattaName()); + .registerGame(selectedPort, regattaXMLData.getRegattaName()); } catch (IOException e) { logger.warn("Could not register server"); } @@ -346,4 +348,8 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate { public boolean hasStarted() { return hasStarted; } + + public int getPortNumber() { + return selectedPort; + } } diff --git a/src/main/java/seng302/visualiser/GameClient.java b/src/main/java/seng302/visualiser/GameClient.java index 57cd81a4..57deb9f4 100644 --- a/src/main/java/seng302/visualiser/GameClient.java +++ b/src/main/java/seng302/visualiser/GameClient.java @@ -143,7 +143,7 @@ public class GameClient { } try { - startClientToServerThread("localhost", 4942); + startClientToServerThread("localhost", server.getPortNumber()); } catch (IOException e) { showConnectionError("Cannot connect to server as host"); } @@ -177,9 +177,11 @@ public class GameClient { this.lobbyController = ViewManager.getInstance().goToLobby(false); + lobbyController.setPortNumber(""+server.getPortNumber()); + ViewManager.getInstance().setPlayerList(clientLobbyList); return new ServerDescription(serverName, regattaData.getCourseName(), GameState.getNumberOfPlayers(), GameState.getCapacity(), - "localhost", 4942); + "localhost", server.getPortNumber()); } private void tearDownConnection() { diff --git a/src/main/java/seng302/visualiser/controllers/LobbyController.java b/src/main/java/seng302/visualiser/controllers/LobbyController.java index 84be615c..9035085d 100644 --- a/src/main/java/seng302/visualiser/controllers/LobbyController.java +++ b/src/main/java/seng302/visualiser/controllers/LobbyController.java @@ -71,6 +71,8 @@ public class LobbyController implements Initializable { @FXML private Label roomLabel; @FXML + private Label portNumber; + @FXML private Pane speedTokenPane, handlingTokenPane, windWalkerTokenPane, bumperTokenPane, randomTokenPane; //---------FXML END---------// @@ -85,6 +87,8 @@ public class LobbyController implements Initializable { @Override public void initialize(URL location, ResourceBundle resources) { roomLabel.setText(""); + portNumber.setText(""); + this.playerBoats = ViewManager.getInstance().getGameClient().getAllBoatsMap(); if (this.playersColor == null) { @@ -376,4 +380,8 @@ public class LobbyController implements Initializable { public void setRoomCode(String roomCode) { roomLabel.setText("Room: " + roomCode); } + + public void setPortNumber(String p){ + portNumber.setText("Port: " + p); + } } diff --git a/src/main/resources/views/LobbyView.fxml b/src/main/resources/views/LobbyView.fxml index 08f135c7..432fd4e7 100644 --- a/src/main/resources/views/LobbyView.fxml +++ b/src/main/resources/views/LobbyView.fxml @@ -66,6 +66,11 @@ + + @@ -80,12 +85,9 @@ - - - + + + @@ -110,116 +112,92 @@ - + - + - + - + - - + - - + - - + - - + - - + - + - - - - - - + + + + + + @@ -236,7 +214,7 @@ - - + + diff --git a/src/test/java/seng302/visualiser/ClientToServerTests/DisconnectionTest.java b/src/test/java/seng302/visualiser/ClientToServerTests/DisconnectionTest.java index 6bc3e9ad..01dfc8f9 100644 --- a/src/test/java/seng302/visualiser/ClientToServerTests/DisconnectionTest.java +++ b/src/test/java/seng302/visualiser/ClientToServerTests/DisconnectionTest.java @@ -12,7 +12,7 @@ public class DisconnectionTest { @Test public void testServerDisconnection () throws Exception { MainServerThread serverThread = new MainServerThread(); - ClientToServerThread clientThread = new ClientToServerThread("localhost", 4942); + ClientToServerThread clientThread = new ClientToServerThread("localhost", serverThread.getPortNumber()); Thread.sleep(1000); clientThread.addDisconnectionListener(message -> Assert.assertTrue(message != null)); serverThread.terminate(); diff --git a/src/test/java/seng302/visualiser/ClientToServerTests/RegularPacketsTest.java b/src/test/java/seng302/visualiser/ClientToServerTests/RegularPacketsTest.java index 9dc6fd30..c96cede2 100644 --- a/src/test/java/seng302/visualiser/ClientToServerTests/RegularPacketsTest.java +++ b/src/test/java/seng302/visualiser/ClientToServerTests/RegularPacketsTest.java @@ -20,7 +20,7 @@ public class RegularPacketsTest { public void setup() throws Exception { new GameState(); serverThread = new MainServerThread(); - clientThread = new ClientToServerThread("localhost", 4942); + clientThread = new ClientToServerThread("localhost", serverThread.getPortNumber()); GameState.setCurrentStage(GameStages.RACING); } diff --git a/src/test/java/steps/SendChatSteps.java b/src/test/java/steps/SendChatSteps.java index 9f915333..87a224ad 100644 --- a/src/test/java/steps/SendChatSteps.java +++ b/src/test/java/steps/SendChatSteps.java @@ -45,7 +45,7 @@ public class SendChatSteps { } catch (InterruptedException ie) { ie.printStackTrace(); } - host = new ClientToServerThread("localhost", 4942); + host = new ClientToServerThread("localhost", mst.getPortNumber()); host.addStreamObserver(() -> { while (host.getPacketQueue().peek() != null) { StreamPacket packet = host.getPacketQueue().poll(); @@ -68,7 +68,7 @@ public class SendChatSteps { } catch (InterruptedException ie) { ie.printStackTrace(); } - client = new ClientToServerThread("localhost", 4942); + client = new ClientToServerThread("localhost", mst.getPortNumber()); try { Thread.sleep(1000); } catch (InterruptedException ie) { diff --git a/src/test/java/steps/ToggleSailSteps.java b/src/test/java/steps/ToggleSailSteps.java index 3899e29b..1c6c173c 100644 --- a/src/test/java/steps/ToggleSailSteps.java +++ b/src/test/java/steps/ToggleSailSteps.java @@ -44,7 +44,7 @@ public class ToggleSailSteps { } catch (InterruptedException ie) { ie.printStackTrace(); } - client = new ClientToServerThread("localhost", 4942); + client = new ClientToServerThread("localhost", mst.getPortNumber()); try { Thread.sleep(100); } catch (InterruptedException ie) {