web-dev-qa-db-fra.com

Comment puis-je forcer netcat à envoyer mon entrée immédiatement, pas seulement aux nouvelles lignes?

Comment puis-je forcer netcat à envoyer mon entrée immédiatement, pas seulement aux nouvelles lignes? Je souhaite tester manuellement un analyseur HTTP et vérifier son comportement lorsque les lignes d'en-tête sont réparties sur plusieurs paquets.

32
thejh

Utilisez la touche "eof", CtrlD. Lorsque vous appuyez sur cette touche au milieu d’une ligne, cela donne à Netcat tout ce qui a été entré à ce moment.

La mise en mémoire tampon est en fait effectuée par la couche tty et n'est pas du tout gérée par nc. stty -icanon && nc ... désactive la mise en mémoire tampon et permet à nc de voir les données telles qu'elles sont entrées dans le terminal. À ce moment, elles seront envoyées immédiatement. (Notez que les commandes stty et nc doivent être exécutées ensemble, sinon le shell lui-même le réactiverait probablement lorsqu'il afficherait son invite.)

39
grawity