На одном сервере я получаю пакеты udp на 192.168.0.51 от приложения, работающего на 192.168.0.21, и должен ответить определенным пакетом подтверждения.
Решение, которое я написал, работает следующим образом:
#!/bin/bash
send_ack() {
<calculate $ack - code removed>
echo -n "$ack" | nc -u -w1 192.168.0.21 8076
}
while [ 1 ]
do
for string in $(/usr/sbin/tcpdump -Avnni eth0 -c 1 dst 192.168.0.51 and udp port 8076)
do
send_ack &
done
done
Проблема в том, что у меня, похоже, какое-то рабочее состояние, когда пакеты приходят слишком быстро, я думаю, они прибывают до перезапуска tcpdump. Я пробовал -l для однострочного буфера вместо -c 1 безуспешно.
У кого-нибудь есть идеи, как решить эту проблему?
Спасибо, ждем :)