Merge branch 'story77' of https://eng-git.canterbury.ac.nz/seng302-2017/team-7 into story77
This commit is contained in:
@@ -60,7 +60,6 @@ public class NetworkInterface {
|
|||||||
for(Map.Entry<ClientAddress, HostGame> tableEntry: matchTable.getMatchTable().entrySet()) {
|
for(Map.Entry<ClientAddress, HostGame> tableEntry: matchTable.getMatchTable().entrySet()) {
|
||||||
HostGame game = tableEntry.getValue();
|
HostGame game = tableEntry.getValue();
|
||||||
if(game != null) {
|
if(game != null) {
|
||||||
System.out.println(game.getIp());
|
|
||||||
games.add(game);
|
games.add(game);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -70,7 +69,6 @@ public class NetworkInterface {
|
|||||||
byte[] message = encoder.encode(new HostGamesRequest(games));
|
byte[] message = encoder.encode(new HostGamesRequest(games));
|
||||||
System.out.println(LocalDateTime.now() + ": Sending " + games.size() + " game/s");
|
System.out.println(LocalDateTime.now() + ": Sending " + games.size() + " game/s");
|
||||||
for(ClientAddress address: clientsAddresses) {
|
for(ClientAddress address: clientsAddresses) {
|
||||||
System.out.println("sending to: " + address.getIp());
|
|
||||||
serverSocket.send(new DatagramPacket(message, message.length, InetAddress.getByName(address.getIp()), 4941));
|
serverSocket.send(new DatagramPacket(message, message.length, InetAddress.getByName(address.getIp()), 4941));
|
||||||
}
|
}
|
||||||
} catch (InvalidMessageException | IOException e) {
|
} catch (InvalidMessageException | IOException e) {
|
||||||
@@ -99,9 +97,6 @@ public class NetworkInterface {
|
|||||||
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
|
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
|
||||||
serverSocket.receive(receivePacket);
|
serverSocket.receive(receivePacket);
|
||||||
|
|
||||||
// System.out.println(receivePacket.getAddress());
|
|
||||||
// System.out.println(this.clientsAddresses);
|
|
||||||
|
|
||||||
BinaryMessageDecoder messageDecoder = new BinaryMessageDecoder(receivePacket.getData());
|
BinaryMessageDecoder messageDecoder = new BinaryMessageDecoder(receivePacket.getData());
|
||||||
switch (MessageType.fromByte(messageDecoder.getHeaderMessageType())){
|
switch (MessageType.fromByte(messageDecoder.getHeaderMessageType())){
|
||||||
case HOST_GAME:
|
case HOST_GAME:
|
||||||
@@ -110,6 +105,7 @@ public class NetworkInterface {
|
|||||||
HostGame newKnownGame;
|
HostGame newKnownGame;
|
||||||
try{
|
try{
|
||||||
newKnownGame = (HostGame) decoder.decode(messageDecoder.getMessageBody());
|
newKnownGame = (HostGame) decoder.decode(messageDecoder.getMessageBody());
|
||||||
|
newKnownGame.setIp(receivePacket.getAddress().getHostAddress());
|
||||||
this.matchTable.addEntry(new ClientAddress(receivePacket.getAddress().getHostAddress(), receivePacket.getPort()), newKnownGame);
|
this.matchTable.addEntry(new ClientAddress(receivePacket.getAddress().getHostAddress(), receivePacket.getPort()), newKnownGame);
|
||||||
|
|
||||||
}catch (InvalidMessageException e){
|
}catch (InvalidMessageException e){
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import network.Messages.RaceStatus;
|
|||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
import static network.Utils.ByteConverter.bytesToInt;
|
import static network.Utils.ByteConverter.bytesToInt;
|
||||||
|
import static network.Utils.ByteConverter.bytesToLong;
|
||||||
|
|
||||||
public class HostGameMessageDecoder implements MessageDecoder {
|
public class HostGameMessageDecoder implements MessageDecoder {
|
||||||
|
|
||||||
@@ -38,7 +39,7 @@ public class HostGameMessageDecoder implements MessageDecoder {
|
|||||||
byte ipPart2 = encodedMessage[1];
|
byte ipPart2 = encodedMessage[1];
|
||||||
byte ipPart3 = encodedMessage[2];
|
byte ipPart3 = encodedMessage[2];
|
||||||
byte ipPart4 = encodedMessage[3];
|
byte ipPart4 = encodedMessage[3];
|
||||||
String ipString = ipPart1 + "." + ipPart2 + "." + ipPart3 + "." + ipPart4;
|
String ipString = bytesToLong(ipPart1) + "." + bytesToLong(ipPart2) + "." + bytesToLong(ipPart3) + "." + bytesToLong(ipPart4);
|
||||||
// System.out.println(ipString);
|
// System.out.println(ipString);
|
||||||
int port = bytesToInt(Arrays.copyOfRange(encodedMessage, 4, 8));
|
int port = bytesToInt(Arrays.copyOfRange(encodedMessage, 4, 8));
|
||||||
byte map = encodedMessage[8];
|
byte map = encodedMessage[8];
|
||||||
|
|||||||
@@ -3,6 +3,11 @@ package network.Messages;
|
|||||||
|
|
||||||
import network.Messages.Enums.MessageType;
|
import network.Messages.Enums.MessageType;
|
||||||
import network.Messages.Enums.RaceStatusEnum;
|
import network.Messages.Enums.RaceStatusEnum;
|
||||||
|
import network.Utils.ByteConverter;
|
||||||
|
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
|
||||||
|
import static network.Utils.ByteConverter.intToBytes;
|
||||||
|
|
||||||
public class HostGame extends AC35Data {
|
public class HostGame extends AC35Data {
|
||||||
|
|
||||||
@@ -76,4 +81,9 @@ public class HostGame extends AC35Data {
|
|||||||
public byte getCurrentNumPlayers() {
|
public byte getCurrentNumPlayers() {
|
||||||
return currentNumPlayers;
|
return currentNumPlayers;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setIp(String ip) {
|
||||||
|
this.ip = ip;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user