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 e67a9567..b8afa377 100644
--- a/src/main/java/seng302/gameServer/MainServerThread.java
+++ b/src/main/java/seng302/gameServer/MainServerThread.java
@@ -35,6 +35,7 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate {
private Logger logger = LoggerFactory.getLogger(MainServerThread.class);
private static final int PORT = 4942;
+ private static int selectedPort = PORT;
private static final Integer CLIENT_UPDATES_PER_SECOND = 60;
private boolean terminated;
@@ -65,7 +66,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");
}
@@ -74,7 +75,10 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate {
public MainServerThread() {
new GameState();
try {
- serverSocket = new ServerSocket(PORT);
+ serverSocket = new ServerSocket(0);
+ selectedPort = serverSocket.getLocalPort();
+ System.out.println("selectedPort = " + selectedPort);
+
} catch (IOException e) {
logger.trace("IO error in server thread handler upon trying to make new server socket",
0);
@@ -459,4 +463,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 63df3d27..95ff2ea1 100644
--- a/src/main/java/seng302/visualiser/GameClient.java
+++ b/src/main/java/seng302/visualiser/GameClient.java
@@ -165,7 +165,7 @@ public class GameClient {
}
try {
- startClientToServerThread(ipAddress, 4942);
+ startClientToServerThread(ipAddress, server.getPortNumber());
} catch (IOException e) {
showConnectionError("Cannot connect to server as host");
}
@@ -199,8 +199,10 @@ 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(), ipAddress, 4942);
+ return new ServerDescription(serverName, regattaData.getCourseName(), GameState.getNumberOfPlayers(), GameState.getCapacity(), ipAddress, 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/java/seng302/visualiser/controllers/dialogs/ServerCreationController.java b/src/main/java/seng302/visualiser/controllers/dialogs/ServerCreationController.java
index fcd33e0d..5c023e24 100644
--- a/src/main/java/seng302/visualiser/controllers/dialogs/ServerCreationController.java
+++ b/src/main/java/seng302/visualiser/controllers/dialogs/ServerCreationController.java
@@ -115,7 +115,7 @@ public class ServerCreationController implements Initializable {
*/
private void createServer() {
ServerDescription serverDescription = ViewManager.getInstance().getGameClient()
- .runAsHost("localhost", 4941, serverName.getText(), (int) maxPlayersSlider
+ .runAsHost("localhost", 0, serverName.getText(), (int) maxPlayersSlider
.getValue(), mapMaker.getCurrentRacePath(), (int) legsSlider.getValue(), pickupsCheckBox.isSelected());
if (serverDescription == null){
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) {