Если вы реализуете это в UDP, отправка и получение подтверждений остается за вами. Похоже, это то, что вы хотите для этого протокола остановки и ожидания. С точки зрения псевдокода, вы хотели бы что-то вроде:
int Send(msg)
{
char rcvBuf[];
sentBytes = sock.send(msg);
sock.rcv(rcvBuf);
return sentBytes;
}
int Recv(rcvBuf)
{
String ackMsg = "ACK";
length = sock.rcv(rcvBuf);
sock.send(ackMsg);
return length;
}
После каждой отправки вы ждете подтверждения, и каждый раз, когда вы получаете, вы отправляете подтверждение.