Ich habe eine ASCII-Datei, die so aussieht:
36,36,0,1
36,36,0,2
...
Ich möchte jede Zeile davon als Nutzlast eines binären TCP-Segments mit NetCat senden.
Um die Nummer aus der Datei in ihre binäre Darstellung umzuwandeln, verwende ich Perl, print pack("c", <STDIN>);
sodass ich die ganze Datei problemlos (Nummer für Nummer) konvertieren kann. Ich weiß auch, wie man es sendet, cat file | netcat localhost 9999
aber dieser Befehl sendet den gesamten Inhalt als Nutzlast in einem Segment.
Was kann ich tun, um jede Zeile der Originaldatei (in Binärdatei konvertiert) als neues TCP-Segment zu senden?
Antwort1
OK, ich habe also eine Lösung gefunden.
Um alle n
Bytes aus der Datei als neues TCP-Segment zu senden, kann ein Befehl ähnlich dem folgenden verwendet werden:
for i in `seq 1 $num_of_segments`
do
head -c $i file_name | tail -c 1 | netcat localhost 9999
done
Die Option -c n
in head
und tail
die Befehle geben an, ob die ersten oder letzten n
Bytes weitergeleitet werden sollen.