diff --git a/matchBrowser/pom.xml b/matchBrowser/pom.xml
index fb8cabe9..91581a28 100644
--- a/matchBrowser/pom.xml
+++ b/matchBrowser/pom.xml
@@ -36,6 +36,13 @@
6.11
test
+
+
+ seng302
+ racevisionGame
+ 2.0
+
+
diff --git a/matchBrowser/src/main/java/app/Main.java b/matchBrowser/src/main/java/app/Main.java
index e189c052..0d858d6f 100644
--- a/matchBrowser/src/main/java/app/Main.java
+++ b/matchBrowser/src/main/java/app/Main.java
@@ -1,7 +1,12 @@
package app;
+import networkInterface.NetworkInterface;
+
/**
* Used when starting the matchmaking browser
*/
public class Main {
+ public static void main(String[] args) {
+ NetworkInterface networkInterface = new NetworkInterface();
+ }
}
diff --git a/matchBrowser/src/main/java/networkInterface/InInterface.java b/matchBrowser/src/main/java/networkInterface/NetworkInterface.java
similarity index 60%
rename from matchBrowser/src/main/java/networkInterface/InInterface.java
rename to matchBrowser/src/main/java/networkInterface/NetworkInterface.java
index 5d729e08..e6bd69c1 100644
--- a/matchBrowser/src/main/java/networkInterface/InInterface.java
+++ b/matchBrowser/src/main/java/networkInterface/NetworkInterface.java
@@ -1,17 +1,23 @@
package networkInterface;
-import java.io.*;
-import java.net.*;
+import network.Exceptions.InvalidMessageException;
+import network.MessageDecoders.HostedGamesRequestDecoder;
+import network.Messages.HostGamesRequest;
+
+import java.io.IOException;
+import java.net.DatagramPacket;
+import java.net.DatagramSocket;
+import java.net.InetAddress;
/**
* Holds the output for the network for
*/
-public class InInterface {
+public class NetworkInterface {
private DatagramSocket serverSocket;
private byte[] receiveData = new byte[1024];
private byte[] sendData = new byte[1024];
- public InInterface(){
+ public NetworkInterface(){
try {
this.serverSocket = new DatagramSocket(3779);
@@ -29,6 +35,14 @@ public class InInterface {
serverSocket.receive(receivePacket);
//decode and update table
+ HostedGamesRequestDecoder decoder = new HostedGamesRequestDecoder();
+ HostGamesRequest newKnownGames;
+ try{
+ newKnownGames = (HostGamesRequest) decoder.decode(receivePacket.getData());
+ System.out.println(newKnownGames.getKnownGames().get(0));
+ }catch (InvalidMessageException e){
+ System.err.println("Message received that is not a hostedGamesRequest packet");
+ }
//client ip and port
InetAddress IPAddress = receivePacket.getAddress();
@@ -36,6 +50,7 @@ public class InInterface {
+
// String capitalizedSentence = sentence.toUpperCase();
// sendData = capitalizedSentence.getBytes();
// DatagramPacket sendPacket =
diff --git a/matchBrowser/src/main/java/networkInterface/OutInterface.java b/matchBrowser/src/main/java/networkInterface/OutInterface.java
deleted file mode 100644
index 18746004..00000000
--- a/matchBrowser/src/main/java/networkInterface/OutInterface.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package networkInterface;
-
-/**
- * Holds the connection to the network for output
- */
-public class OutInterface {
-}
diff --git a/racevisionGame/src/main/java/network/MessageEncoders/HostGameMessageEncoder.java b/racevisionGame/src/main/java/network/MessageEncoders/HostGameMessageEncoder.java
index 0a5c9a08..8fbe30d2 100644
--- a/racevisionGame/src/main/java/network/MessageEncoders/HostGameMessageEncoder.java
+++ b/racevisionGame/src/main/java/network/MessageEncoders/HostGameMessageEncoder.java
@@ -5,8 +5,6 @@ import network.Messages.AC35Data;
import network.Messages.HostGame;
import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-import java.util.List;
import static network.Utils.ByteConverter.intToBytes;
@@ -25,7 +23,7 @@ public class HostGameMessageEncoder implements MessageEncoder{
//Downcast
HostGame hostGame = (HostGame) message;
- ByteBuffer hostGameMessage = ByteBuffer.allocate(14);
+ ByteBuffer hostGameMessage = ByteBuffer.allocate(13);
ByteBuffer ipBytes = ByteBuffer.allocate(4);
String ip = hostGame.getIp();
diff --git a/racevisionGame/src/main/java/network/MessageEncoders/HostedGamesRequestEncoder.java b/racevisionGame/src/main/java/network/MessageEncoders/HostedGamesRequestEncoder.java
index 4b4b52d1..80942a31 100644
--- a/racevisionGame/src/main/java/network/MessageEncoders/HostedGamesRequestEncoder.java
+++ b/racevisionGame/src/main/java/network/MessageEncoders/HostedGamesRequestEncoder.java
@@ -6,7 +6,6 @@ import network.Messages.HostGame;
import network.Messages.HostGamesRequest;
import java.nio.ByteBuffer;
-import java.util.List;
import static network.Utils.ByteConverter.intToBytes;
@@ -26,7 +25,7 @@ public class HostedGamesRequestEncoder implements MessageEncoder{
int numGames = hostGamesRequest.getKnownGames().size();
- ByteBuffer hostedGamesRequestMessage = ByteBuffer.allocate(4+14*numGames);
+ ByteBuffer hostedGamesRequestMessage = ByteBuffer.allocate(4+13*numGames);
hostedGamesRequestMessage.put(intToBytes(numGames));
diff --git a/racevisionGame/src/main/java/visualiser/network/MatchBrowserInterface.java b/racevisionGame/src/main/java/visualiser/network/MatchBrowserInterface.java
new file mode 100644
index 00000000..f5d806ed
--- /dev/null
+++ b/racevisionGame/src/main/java/visualiser/network/MatchBrowserInterface.java
@@ -0,0 +1,33 @@
+package visualiser.network;
+
+import network.BinaryMessageEncoder;
+import network.Exceptions.InvalidMessageException;
+import network.MessageEncoders.HostGameMessageEncoder;
+import network.Messages.AC35Data;
+import network.Messages.Enums.MessageType;
+
+import java.net.DatagramSocket;
+
+/**
+ * UDP interface for the matchBrowser to send out hosted game info and get in other hosts info
+ */
+public class MatchBrowserInterface {
+ DatagramSocket clientSocket;
+
+ public void sendOutGameInfo(AC35Data gameInfo){
+ byte[] fullMessageToSend;
+ try{
+ HostGameMessageEncoder encoder = new HostGameMessageEncoder();
+ byte[] message = encoder.encode(gameInfo);
+ BinaryMessageEncoder messageEncoder = new BinaryMessageEncoder(MessageType.HOST_GAME
+ ,System.currentTimeMillis(), 1,(short) 14 ,message);
+ fullMessageToSend = messageEncoder.getFullMessage();
+ }catch (InvalidMessageException e){
+ System.err.println("HostGameMessage could not be encoded");
+ }
+
+
+
+
+ }
+}