network interface

This commit is contained in:
hba56
2017-08-30 12:13:17 +12:00
parent ca0a3f2a8b
commit b2bd4fdc1c
7 changed files with 66 additions and 16 deletions
@@ -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();
@@ -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));
@@ -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");
}
}
}