Auf Port 5144 wartet ein Daemon-Prozess, den ich nicht ändern kann.
Ich möchte netcat verwenden, um den Inhalt einer Textdatei an den Server zu senden. Dies führt jedoch dazu, dass netcat
das Terminal hängt, bis ich Ctrl+ drücke C:
cat file.txt | nc -u 127.0.0.1 5144
Der einzige Weg, wie ich es zum Laufen bringen kann, besteht darin, nc -u 127.0.0.1 5144
den Inhalt der Datei manuell auszuführen und zu kopieren / einzufügen.
Irgendwelche Ideen?
Beachten Sie auch:
cat file.txt | ...
führt zubash: ...: command not found
und ich kann das terminal weiter nutzen- using
nc -u 127.0.0.1 5144 < file.txt
führt zu demselben Verhalten wie using | über
linux
data-transfer
netcat
Amil
quelle
quelle
cat file.txt | …
? Wie wäre esnc -u 127.0.0.1 5144 < file.txt
?bash: ...: command not found
und die Verwendung von "<file.txt" entspricht dem | operator (netcat hängt gerade)bash: ...: command not found
"? Oder heißt es "bash: cat: command not found
" oder "bash: nc: command not found
"? Und kommt es dann zu einer Shell-Eingabeaufforderung oder hängt es? (Ich empfehle Ihnen, die Frage zu bearbeiten, um diese Details hinzuzufügen, damit Menschen in Australien, die gerade aufwachen, nicht all diese Kommentare lesen müssen, um herauszufinden, was Ihre Symptome sind.)Antworten:
Wenn Sie die GNU-Version von netcat verwenden, können Sie das Flag -c verwenden, um die Verbindung in EOF zu trennen.
Wenn Sie die Originalversion des Tools verwenden, können Sie das Flag -q verwenden.
Ein Beispiel für die Originalversion ist:
Ich habe Ihrem ursprünglichen Befehl "-q 0" hinzugefügt. Dadurch wird die Verbindung getrennt, nachdem die Datei gesendet wurde.
quelle
-l -p <port>
zum Hören angegeben werden muss. Die GNU-Version dauert nur-l <port>
.Vorausgesetzt, dass nach dem Senden der EOF-Verbindung keine Verbindung zustande kommt, können Sie die
-w timeout
Option verwenden, die fürtimeout
den Wert Null gilt (im Gegensatz zur dummen-q
Option ...).quelle
Wenn Sie von FreeBSD nach Windows wechseln:
FreeBSD:
cat file.txt | nc -N 10.0.0.5 5144
-N
fährt den Netzwerk-Socket nach EOF herunterWindows:
nc -l -p 5144 > output.txt
-l
hört auf zu lauschen, wenn die Verbindung geschlossen ist (im Gegensatz zu-L
)quelle