1 つのサーバーで、192.168.0.21 で実行されているアプリケーションから 192.168.0.51 で udp パケットを受信しており、特定の確認パケットで応答する必要があります。
私が書いた解決策は次のように機能します:
#!/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 が再起動する前に到着すると思います。-c 1 の代わりに単一行バッファに対して -l を試しましたが、成功しませんでした。
誰でもこの問題を解決する方法について何か考えがありますか?
ありがとう、楽しみにしています:)