Wie kann ich Netcat zwingen, meine Eingabe sofort zu senden, nicht nur bei Zeilenumbrüchen? Ich möchte einen HTTP-Parser manuell testen und überprüfen, wie er sich verhält, wenn Headerzeilen auf mehrere Pakete verteilt sind.
Antwort1
Verwenden Sie CtrlD, das standardmäßig als TTY- eof
Taste eingestellt ist. Wenn Sie es mitten in einer Zeile drücken, wird alles, was an dieser Stelle eingegeben wurde, an netcat weitergegeben.
Das Puffern wird tatsächlich von der TTY-Schicht durchgeführt und nc
überhaupt nicht von gehandhabt. stty -icanon && nc ...
würde das Puffern deaktivieren und es ermöglichen, nc
die Daten anzuzeigen, während sie in das Terminal eingegeben werden. An diesem Punkt werden sie sofort gesendet. (Beachten Sie, dass die Befehle stty
und nc
zusammen ausgeführt werden müssen, da die Shell sie sonst wahrscheinlich selbst wieder aktivieren würde, wenn sie ihre Eingabeaufforderung anzeigt.)