Как заставить сообщение быть удаленным через 1 секунду? (UDP клиент / сервер в C)
У меня есть UDP-клиент, основанный на http://cs.baylor.edu/~donahoo/practical/CSockets/code/UDPEchoClient.c где клиент отправляет сообщение, а сервер выводит его обратно. У меня есть настраиваемый сервер, на котором я могу отбрасывать пакеты, и я отправляю несколько сообщений вместо одного в коде, указанном выше. Как сделать так, чтобы сообщение сбрасывалось, если оно занимает более 1 секунды? На данный момент я проверяю каждое сообщение после того, как получаю его в recvfrom(), но я хочу, чтобы вся моя программа работала менее чем за 1,5 с, потому что я не хочу ждать 1 секунду для каждого сообщения (это будет длиться вечно, если было много сообщений). Есть ли способ прикрепить как таймер или что-то к каждому сообщению, чтобы оно считало себя отброшенным, если оно не получено в течение 1 секунды? Спасибо!
1 ответ
Использовать TTL для пакетов UDP
int ttl = 60; /* max = 255 */
setsockopt(s, IPPROTO_IP, IP_TTL, &ttl, sizeof(ttl));