From 72c62bb1b44678f94fec14a1b7c147cd3395df8f Mon Sep 17 00:00:00 2001 From: Persson-dev Date: Thu, 6 Mar 2025 11:48:59 +0100 Subject: [PATCH] network: remove ack by default --- .../app/src/main/java/network/PacketPool.java | 18 +++++++++--------- .../src/main/java/network/ReliablePacket.java | 8 +------- .../packets/AcknowlegdementPacket.java | 10 ++++++++++ 3 files changed, 20 insertions(+), 16 deletions(-) diff --git a/ChatApp/app/src/main/java/network/PacketPool.java b/ChatApp/app/src/main/java/network/PacketPool.java index f395c15..504cb9b 100644 --- a/ChatApp/app/src/main/java/network/PacketPool.java +++ b/ChatApp/app/src/main/java/network/PacketPool.java @@ -78,13 +78,13 @@ public class PacketPool { private void debugSend(ReliablePacket packet, InetSocketAddress address) { boolean client = address.getPort() == 6665; debugPrint((client ? "[Client]" : "[Server]") + " Sent " + packet.getPacket().getClass().getName() - + " with seq : " + packet.getSeq() + " and ack " + packet.getAck()); + + " with seq : " + packet.getSeq()); } private void debugRecv(ReliablePacket packet, InetSocketAddress address) { boolean client = address.getPort() == 6665; debugPrint((client ? "[Client]" : "[Server]") + " Received " + packet.getPacket().getClass().getName() - + " with seq : " + packet.getSeq() + " and ack " + packet.getAck()); + + " with seq : " + packet.getSeq()); } private void sendPacketToSocket(ReliablePacket packet, InetSocketAddress address) throws IOException { @@ -119,7 +119,7 @@ public class PacketPool { public synchronized void sendPacket(Packet packet, InetSocketAddress address) throws IOException { tryAddContext(address); - ReliablePacket reliablePacket = new ReliablePacket(packet, getNextSeqSend(address), -1); + ReliablePacket reliablePacket = new ReliablePacket(packet, getNextSeqSend(address)); sendPacket(reliablePacket, address); } @@ -187,11 +187,11 @@ public class PacketPool { var packetsSentTries = this.addressContexts.get(address).packetsSentTries; - if (packet.getPacket() instanceof AcknowlegdementPacket) { - assert (packet.getAck() != -1); + if (packet.getPacket() instanceof AcknowlegdementPacket ackPacket) { + assert (ackPacket.getAck() != -1); for (var entry : packetsSentTries.entrySet()) { ReliablePacket reliablePacket = entry.getKey(); - if (entry.getKey().getSeq() == packet.getAck()) { + if (entry.getKey().getSeq() == ackPacket.getAck()) { packetsSentTries.remove(reliablePacket); break; } @@ -202,21 +202,21 @@ public class PacketPool { if (this.addressContexts.get(address).packetRecvBuffer.contains(packet)) { debugPrint("The packet has already been received !"); sendPacketToSocket( - new ReliablePacket(new AcknowlegdementPacket(), -1, packet.getSeq()), address); + new ReliablePacket(new AcknowlegdementPacket(packet.getSeq()), -1), address); return; } if (packet.getSeq() < getCurrentSeqRecv(address)) { debugPrint("Packet too old, current : " + getCurrentSeqRecv(address)); sendPacketToSocket( - new ReliablePacket(new AcknowlegdementPacket(), -1, packet.getSeq()), address); + new ReliablePacket(new AcknowlegdementPacket(packet.getSeq()), -1), address); return; } this.addressContexts.get(address).packetRecvBuffer.add(packet); debugRecv(packet, address); sendPacketToSocket( - new ReliablePacket(new AcknowlegdementPacket(), -1, packet.getSeq()), address); + new ReliablePacket(new AcknowlegdementPacket(packet.getSeq()), -1), address); // got the packet in the right order if (packet.getSeq() == getCurrentSeqRecv(address)) { diff --git a/ChatApp/app/src/main/java/network/ReliablePacket.java b/ChatApp/app/src/main/java/network/ReliablePacket.java index d6cee65..12a62c6 100644 --- a/ChatApp/app/src/main/java/network/ReliablePacket.java +++ b/ChatApp/app/src/main/java/network/ReliablePacket.java @@ -8,22 +8,16 @@ public class ReliablePacket implements Serializable { private final Packet packet; private final int seq; - private final int ack; - public ReliablePacket(Packet packet, int seq, int ack) { + public ReliablePacket(Packet packet, int seq) { this.packet = packet; this.seq = seq; - this.ack = ack; } public Packet getPacket() { return packet; } - public int getAck() { - return ack; - } - public int getSeq() { return seq; } diff --git a/ChatApp/app/src/main/java/network/protocol/packets/AcknowlegdementPacket.java b/ChatApp/app/src/main/java/network/protocol/packets/AcknowlegdementPacket.java index 40a932e..39001e9 100644 --- a/ChatApp/app/src/main/java/network/protocol/packets/AcknowlegdementPacket.java +++ b/ChatApp/app/src/main/java/network/protocol/packets/AcknowlegdementPacket.java @@ -5,9 +5,19 @@ import network.protocol.PacketVisitor; public class AcknowlegdementPacket extends Packet { + private final int ack; + + public AcknowlegdementPacket(int ack) { + this.ack = ack; + } + @Override public void accept(PacketVisitor packetVisitor) { } + public int getAck() { + return ack; + } + }