Я реализую клиент-серверную программу и хотел, чтобы мой клиент, подождав 5 секунд без ACK-ответа с сервера, отправил обратно тот же пакет...
Я сделал это так, поэтому, пожалуйста, скажите мне, все ли в порядке ..
dp = new DatagramPacket(packet , packet.length , host , port);
sock.send(dp);
time = System.currentTimeMillis();
while ((System.currentTimeMillis() - time < 5000) && ack_dp.getLength() == 0) {
sock.receive(ack_dp);
}
if (ack_dp.getLength() == 0)
sock.send(dp);
поэтому моя программа будет ждать ACK 5 секунд, если он ничего не получит, он повторно отправит тот же пакет. Я проверяю, получил ли он акк или нет с длиной пакета.. если он остается 0, то он ничего не получил.. если он будет длиннее 0, то из while-последовательности и отправить новый пакет.. ( пс: ack_dp 2 байта)