Comment puis-je forcer netcat à envoyer mes contributions immédiatement, pas seulement sur les nouvelles lignes? Je veux tester un analyseur HTTP manuellement et vérifier comment il se comporte lorsque les lignes d'en-tête sont réparties sur plusieurs paquets.
35
socat
comme indiqué dans cette réponseRéponses:
Utilisez la touche « EOF », CtrlD. Lorsqu'il est enfoncé au milieu d'une ligne, il donnera à netcat tout ce qui a été entré à ce point.
La mise en mémoire tampon est en fait effectuée par la couche tty et n'est pas gérée
nc
du tout.stty -icanon && nc ...
désactiverait la mise en mémoire tampon et permettraitnc
de voir les données lorsqu'elles sont entrées dans le terminal, auquel cas elles seront envoyées immédiatement. (Notez que les commandesstty
etnc
doivent être exécutées ensemble, sinon le shell lui-même le réactiverait probablement lors de l'affichage de son invite.)la source
stty -icanon && nc ...
oustty raw && nc ...
le désactiverait. [Notez qu'il doit être exécuté ensemble, sinon le shell lui-même le réactiverait lors de l'affichage de l'invite.]raw
change tout un tas d'options tty, l'une d'entre elles étant la gestion des touches spéciales de "contrôle" au niveau tty. (C'est vraiment un mode "brut", en ce sens qu'il passe tout au programme.) Vous pouvez utiliser àstty -a -F /dev/pts/XX
partir d'un autre tty pour voir les paramètres actuels.stty -icanon -echo && nc ...
sinon tous les caractères que j'ai tapés nc sont répétés deux fois