2017-01-04 14 views
0

Dies bezieht sich auf die Übergabe von Eingaben über Stdin an eine Binärdatei, die auf einem Port ausgeführt wird. Ich kann den binären mit netcat laufen wie folgt:Mehrere Eingaben für Netcat

nc $server $port 

Jetzt eine einzige Zeile passieren, ich kann die folgende Arbeits erhalten:

python -c 'print "AAAA"' | nc $server $port 

Aber ich bin nicht in der Lage ein, um herauszufinden, Möglichkeit zweimal auf stdin zu schreiben.

Mein Programm hat einen Fluss etwas wie unten:

Die erste Futter auf einige Antwort vom Server abhängig ist.

line 5: read(stdin,&buffer,20); // This entry is based on some question from the server and need to be determined dynamically 

Der zweite Feed muss als Python-Ausgabe übergeben werden, da er auch Hexadezimalzeichen enthalten muss.

line 8: read(stdin,&buffer2,20); // This feed is static. 

Jede Hilfe hier wird sehr geschätzt.

Danke!

Antwort

0

Nicht ganz sicher verstehe ich das Problem, aber Sie können mehrere Befehle in einer Subshell und die Ausgabe des alle von ihnen an einen anderen Prozess auszuführen:

$ (python -c 'print "AAAA"'; python -c 'print "BBBB"') | nc $server $port 
+0

Danke für den Input @nickgrim. Mein Programmablauf enthält jedoch nacheinander zwei Lesefunktionen. Der erste Feed muss dynamisch bestimmt werden, d. H. Er benötigt eine Benutzerinteraktion. Die zweite kann als eine fest codierte Zeichenfolge übergeben werden. Ich habe meine Frage erneut bearbeitet. Hoffe es ist jetzt klar. – swatilaxmi28