한 서버에서 192.168.0.21에서 실행되는 응용 프로그램에서 192.168.0.51에 UDP 패킷을 수신하고 특정 수신 확인 패킷으로 응답해야합니다.bash는 udp 패킷을 수신합니다. tcpdump
솔루션 나는 다음과 같은 작품을 썼다 :
#!/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 대신 -l 대신 단일 행 버퍼를 사용하여 시도했지만 성공하지 못했습니다.
누구든지이 문제를 해결하는 방법에 대한 아이디어가 있습니까?
덕분에 프로그램에서 :) 앞으로