von here Stehlen Ich habe einen kleinen Python-Skript einrichten, die auf einem Port lauscht und drucken alle der UDP-Pakete heraus, es erhält:netcat Senden extra „X“ UDP-Pakete
import socket
UDP_IP = "127.0.0.1"
UDP_PORT = 5005
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind((UDP_IP, UDP_PORT))
while True:
data, addr = sock.recvfrom(1024)
print "received message:", repr(data)
Jetzt verwende ich netcat
um Daten an dieses Skript zu senden. Hier ist meine Befehlszeile.
echo -e "foo:1|c" | netcat -v -u localhost 5005
Und hier ist die Ausgabe von Python:
received message: 'X'
received message: 'X'
received message: 'X'
received message: 'X'
received message: 'X'
received message: 'foo:1|c\n'
Diese ersten vier oder so „X“ Linien kommen in etwa Intervallen von einer Sekunde, dann die letzten beiden Zeilen in etwa gleichzeitig ankommen.
Meine Frage ist das: Woher kommen diese zusätzlichen "X" -Pakete, und wenn die Quelle netcat
ist, wie kann ich dann verhindern, dass netcat
diese ausgibt? Dies ist BSD netcat
, glaube ich.
Auf welchem OS existiert '/ dev/udp'? –
Ah, ich sehe, das ist eine Bash-Funktion, keine OS-Funktion. Ich wusste nichts davon. –
Ich habe vor langer Zeit ein/dev/udp auf QNX geschrieben. Ich bin mir ziemlich sicher, dass es so etwas in Plan 9 gab, obwohl es anders funktionierte, als ich es vage erinnere. –