Jak zmusić netcat do natychmiastowego wysyłania danych wejściowych, nie tylko na nowe linie? Chcę ręcznie przetestować analizator składni HTTP i sprawdzić, jak się zachowuje, gdy linie nagłówków są rozmieszczone w wielu pakietach.
35
socat
jak podano w tej odpowiedziOdpowiedzi:
Użyj przycisku „eof” CtrlD. Naciśnięcie w środku linii da netcatowi wszystko, co zostało wprowadzone w tym momencie.
Buforowanie jest faktycznie wykonywane przez warstwę tty i wcale nie jest obsługiwane
nc
.stty -icanon && nc ...
wyłączy buforowanie i pozwolinc
zobaczyć dane wprowadzane do terminala, w którym to momencie zostaną one wysłane natychmiast. (Zauważ, że poleceniastty
inc
muszą być uruchamiane razem, w przeciwnym razie sama powłoka prawdopodobnie włączy ją ponownie, wyświetlając monit.)źródło
stty -icanon && nc ...
lubstty raw && nc ...
by to wyłączyć. [Zauważ, że musi być uruchamiany razem, w przeciwnym razie sama powłokaraw
zmienia całą masę opcji tty, jedną z nich jest obsługa specjalnych klawiszy „kontrolnych” na poziomie tty. (To jest naprawdę tryb „surowy”, ponieważ przekazuje wszystko do programu.) Możesz użyćstty -a -F /dev/pts/XX
innego tty, aby zobaczyć bieżące parametry.stty -icanon -echo && nc ...
inaczej każdy znak, który wpisałem w nc, zostanie powtórzony dwukrotnie