GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Netcat wird nicht beendet, wenn Stdin schließt?

Ich versuche, eine Nachricht über netcat zu senden . Nach dem Senden der Nachricht netcat muss beendet werden.

Ich habe Folgendes versucht:

cat tsmmessage.bin | nc -u localhost 4300
nc -u localhost 4300 < message.bin

Das -q Option besagt:

-q Sekunden

Warten Sie nach EOF auf stdin die angegebene Anzahl von Sekunden und beenden Sie dann. Wenn Sekunden negativ sind, ewig warten.

Aber

nc -q0 -u localhost 4300 < message.bin

geht auch nicht.

Was übersehe ich?

Akzeptierte Antwort:

Unter der Annahme, dass die EOF-Verbindung nach dem Senden im Leerlauf bleibt, können Sie -w timeout verwenden Option, die für timeout funktioniert gleich Null ist (im Gegensatz zu dummem -q Option…)

cat tsmmessage.bin | nc -u localhost 4300 -w0

Linux
  1. Erhalten Sie die Meldung „nicht gefunden“, wenn Sie eine 32-Bit-Binärdatei auf einem 64-Bit-System ausführen?

  2. Wann kommt die Fehlermeldung „jobs :Not Found“?

  3. So führen Sie ein Skript aus, wenn die xfce-Sitzung endet

  4. Wie vermeide ich die Warnmeldung „Sind die gleiche Datei“ bei der Verwendung von cp unter Linux?

  5. Bash:Warum wird das übergeordnete Skript nicht bei SIGINT beendet, wenn das untergeordnete Skript SIGINT abfängt?

Linux – Funktionen des CD/DVD-Laufwerks abrufen, wenn Wodim-Geräte nicht funktionieren?

Wie kann man den Aufruf „tail -f“ aus der Ferne beenden, wenn die Verbindung geschlossen wird?

SOAP-Fehlermeldung beim Erstellen der Domäne

SSH schließt die Verbindung, wenn der Schlüssel akzeptiert wird

Wann tritt bei der Installation über yum der Fehler „Error:Nothing to do“ auf?

Traversal failed:u:Ungültige Meldung beim Löschen eines extrem großen Verzeichnisses unter Linux