Konvertieren Sie eine Zeile einer ASCII-Datei in ein Binärpaket für NetCat

Konvertieren Sie eine Zeile einer ASCII-Datei in ein Binärpaket für NetCat

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 9999aber 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 nBytes 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 nin headund taildie Befehle geben an, ob die ersten oder letzten nBytes weitergeleitet werden sollen.

verwandte Informationen