network: remove ack by default

This commit is contained in:
2025-03-06 11:48:59 +01:00
parent c8a748fe71
commit 72c62bb1b4
3 changed files with 20 additions and 16 deletions

View File

@@ -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)) {