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