network: remove ack by default
This commit is contained in:
@@ -78,13 +78,13 @@ public class PacketPool {
|
|||||||
private void debugSend(ReliablePacket packet, InetSocketAddress address) {
|
private void debugSend(ReliablePacket packet, InetSocketAddress address) {
|
||||||
boolean client = address.getPort() == 6665;
|
boolean client = address.getPort() == 6665;
|
||||||
debugPrint((client ? "[Client]" : "[Server]") + " Sent " + packet.getPacket().getClass().getName()
|
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) {
|
private void debugRecv(ReliablePacket packet, InetSocketAddress address) {
|
||||||
boolean client = address.getPort() == 6665;
|
boolean client = address.getPort() == 6665;
|
||||||
debugPrint((client ? "[Client]" : "[Server]") + " Received " + packet.getPacket().getClass().getName()
|
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 {
|
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 {
|
public synchronized void sendPacket(Packet packet, InetSocketAddress address) throws IOException {
|
||||||
tryAddContext(address);
|
tryAddContext(address);
|
||||||
ReliablePacket reliablePacket = new ReliablePacket(packet, getNextSeqSend(address), -1);
|
ReliablePacket reliablePacket = new ReliablePacket(packet, getNextSeqSend(address));
|
||||||
sendPacket(reliablePacket, address);
|
sendPacket(reliablePacket, address);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -187,11 +187,11 @@ public class PacketPool {
|
|||||||
|
|
||||||
var packetsSentTries = this.addressContexts.get(address).packetsSentTries;
|
var packetsSentTries = this.addressContexts.get(address).packetsSentTries;
|
||||||
|
|
||||||
if (packet.getPacket() instanceof AcknowlegdementPacket) {
|
if (packet.getPacket() instanceof AcknowlegdementPacket ackPacket) {
|
||||||
assert (packet.getAck() != -1);
|
assert (ackPacket.getAck() != -1);
|
||||||
for (var entry : packetsSentTries.entrySet()) {
|
for (var entry : packetsSentTries.entrySet()) {
|
||||||
ReliablePacket reliablePacket = entry.getKey();
|
ReliablePacket reliablePacket = entry.getKey();
|
||||||
if (entry.getKey().getSeq() == packet.getAck()) {
|
if (entry.getKey().getSeq() == ackPacket.getAck()) {
|
||||||
packetsSentTries.remove(reliablePacket);
|
packetsSentTries.remove(reliablePacket);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -202,21 +202,21 @@ public class PacketPool {
|
|||||||
if (this.addressContexts.get(address).packetRecvBuffer.contains(packet)) {
|
if (this.addressContexts.get(address).packetRecvBuffer.contains(packet)) {
|
||||||
debugPrint("The packet has already been received !");
|
debugPrint("The packet has already been received !");
|
||||||
sendPacketToSocket(
|
sendPacketToSocket(
|
||||||
new ReliablePacket(new AcknowlegdementPacket(), -1, packet.getSeq()), address);
|
new ReliablePacket(new AcknowlegdementPacket(packet.getSeq()), -1), address);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (packet.getSeq() < getCurrentSeqRecv(address)) {
|
if (packet.getSeq() < getCurrentSeqRecv(address)) {
|
||||||
debugPrint("Packet too old, current : " + getCurrentSeqRecv(address));
|
debugPrint("Packet too old, current : " + getCurrentSeqRecv(address));
|
||||||
sendPacketToSocket(
|
sendPacketToSocket(
|
||||||
new ReliablePacket(new AcknowlegdementPacket(), -1, packet.getSeq()), address);
|
new ReliablePacket(new AcknowlegdementPacket(packet.getSeq()), -1), address);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.addressContexts.get(address).packetRecvBuffer.add(packet);
|
this.addressContexts.get(address).packetRecvBuffer.add(packet);
|
||||||
debugRecv(packet, address);
|
debugRecv(packet, address);
|
||||||
sendPacketToSocket(
|
sendPacketToSocket(
|
||||||
new ReliablePacket(new AcknowlegdementPacket(), -1, packet.getSeq()), address);
|
new ReliablePacket(new AcknowlegdementPacket(packet.getSeq()), -1), address);
|
||||||
|
|
||||||
// got the packet in the right order
|
// got the packet in the right order
|
||||||
if (packet.getSeq() == getCurrentSeqRecv(address)) {
|
if (packet.getSeq() == getCurrentSeqRecv(address)) {
|
||||||
|
|||||||
@@ -8,22 +8,16 @@ public class ReliablePacket implements Serializable {
|
|||||||
|
|
||||||
private final Packet packet;
|
private final Packet packet;
|
||||||
private final int seq;
|
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.packet = packet;
|
||||||
this.seq = seq;
|
this.seq = seq;
|
||||||
this.ack = ack;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Packet getPacket() {
|
public Packet getPacket() {
|
||||||
return packet;
|
return packet;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getAck() {
|
|
||||||
return ack;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getSeq() {
|
public int getSeq() {
|
||||||
return seq;
|
return seq;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,9 +5,19 @@ import network.protocol.PacketVisitor;
|
|||||||
|
|
||||||
public class AcknowlegdementPacket extends Packet {
|
public class AcknowlegdementPacket extends Packet {
|
||||||
|
|
||||||
|
private final int ack;
|
||||||
|
|
||||||
|
public AcknowlegdementPacket(int ack) {
|
||||||
|
this.ack = ack;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void accept(PacketVisitor packetVisitor) {
|
public void accept(PacketVisitor packetVisitor) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getAck() {
|
||||||
|
return ack;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user