telnet non bloquand ?? - C - Programmation
Marsh Posté le 05-11-2006 à 23:05:28
Je ne pense pas qu'il y ait grand chose de spécial à faire côté serveur. Tu lis les caractères, et tu en fais ce que tu veux. Côté client par contre, il ne faut pas oublier de passer telnet en mode "character" au lieu de "line", de façon à ce que les caractères soient envoyés directement au serveur (au lieu d'attendre un retour chariot).
Marsh Posté le 06-11-2006 à 11:36:44
matafan a écrit : Je ne pense pas qu'il y ait grand chose de spécial à faire côté serveur. Tu lis les caractères, et tu en fais ce que tu veux. Côté client par contre, il ne faut pas oublier de passer telnet en mode "character" au lieu de "line", de façon à ce que les caractères soient envoyés directement au serveur (au lieu d'attendre un retour chariot). |
Je m'en doutais un peu
Mais ma question est alors, comment font les firmware des ciscos ?
Car, a ma connaissance, je n'ai jamais passé mon telnet en mode caratère..
Marsh Posté le 06-11-2006 à 13:59:46
Pour ce qui est du client telnet je suis en train d'essayer d'en ecrire un car je m'interesse aux echanges du protocole regarde mon code sur le probleme de fermetures des sockets .
A+
Marsh Posté le 06-11-2006 à 15:31:55
C'est gentil, mais, je ne veux pas coder client ;-)
J'aimerais savoir comment le 'serveur telnet' des cisco fait pour lire caratère par caractère sur mon simple telnet que je n'ai pas modifié
Marsh Posté le 06-11-2006 à 15:36:48
C'est du au rpotocole par defaut telnet RFC854 est en mode caractere si on veut passer en mode line on doit le negocier au moment de la connexion. Ton client telnet doit en faire la demande il faut bien entendu que le serveur traite cette option.
Marsh Posté le 07-11-2006 à 16:57:50
Pardon, mais je croyais que par défaut c'était en mode ligne ?? Sans aucune options :
Lorsque j'utilise telnet avec linux, c'est du mode ligne. Lorsque c'est avec windows, c'est du caratère. Et avec putty, c'est du ligne mais il m'envoi 21 octets inconnu (non affichable) à la connexion !
(le bordel !)
Marsh Posté le 08-11-2006 à 13:40:01
Tu peux verifier les options telnet negociees en tapant:
telnet <RC> puis toggle option <RC> puis open @ip <RC>
Tu constatera que l'echo est assure par le serveur. Et alors ? me direz vous, et bien chaque fois que tu tape un caractere tu le vois s'afficher sur ta stdout donc c'est le mode caractere qui actf si tu dois attendre de taper sur <RC> avant de voir sur ta stdout ce que tu as tape tu es en mode ligne. Alors evidement je peux me planter mais le client que j'ai commence a faire fonctionne caractere par caractere et au depart je ne lance aucune nego. Si tu essaye de te connecter a un routeur de type cisco comme son serveur telnet ne repond pas tout a fait a la RFC on arrive a s'y connecter. Tu trouveras le code source dans le sujet fermeture de socket par le distant.
Marsh Posté le 08-11-2006 à 17:20:28
Sur windows on tape telnet <CR> puis display <CR> le resultat des info du client telnet nous indique :
echo local desactive
mode nouvelle ligne (la touche entree enverra la sequence CR LF)
Une phase de negociation du type de terminal s'effectuera avec une preference pour un terminal ansi
Marsh Posté le 09-11-2006 à 10:31:55
toggle option, je n'ai pas ca sur mon telnet windows
par contre, lorsque je tape set mode stream, ca ne change rien. Telnet reste en mode flux.
Comment je peux faire qu'un conf telnet de mon windows sois sauvegarder ?
Marsh Posté le 09-11-2006 à 17:00:04
Bonjour,tu tapes telnet <CR>
pour avoir les option ? <CR>
display <CR> te donnera les options de ton client telnet .
Il est probable que les modifs ne soient valable que pour une session.
Marsh Posté le 05-11-2006 à 10:54:15
Bonjour,
Je code actuellement une application serveur linux.
On peut effectuer un telnet dessus.
J'aimerais être capable d'offrir les possibilités avancés comme une historique, une complétion, une aide a mon client.
Comment faire ??
Par exemple, je constate que ceci est fait par exemple sur les consoles cisco. Avec un simple telnet sur un equipement cisco, lorsque je tape <tab> ou ? j'ai une aide par exemple.
Je veux donc integré une sorte de readline à ma socket.
Une idée ??