Telnet en api win32 pour automatisation des taches avec mon modem speedtouch home

Description

largement inspiré de cette source: http://www.cppfrance.com/codes/TELNET-AVEC-INTERFACE-GRAPHIQUE-API-UNIQUEMENT-SANS-MFC_10749.aspx de Nebula,

mais quand même ajouter dans une bonne partie par ma touche perso...
seul 2 fonctions ont été gardées de Nebula (ClientRecv et Addline), bon quand même modifier...
notament le probleme et de traiter les caractères de recv du serveur telnet. le top serait de faire un TRACE("%c",CharDuRecv);
mais je suis pas en mode concole, et s'il y a un moyen je ne le connait pas... ( a ce propos si quelqu'un connait comment faire un TRACE vers une Edit Control je suis preneur. (je poserai la question dans le forum au cas ou).

Fonction du programme:
  • connection au serveur telnet du modem speedtouch (10.0.0.138)
  • entre le login et le mdp au démarage du prog.
  • boutton permettant de rebouter le modem //send(socket,"system reboot\r",0);
  • boutton permettant d'ajouter une plage de ports exemple du port 2121 à 2225 //send(socket,"nat create protocol=tcp inside_addr=10.0.0.1:2121 outside_addr=0.0.0.0:2121\r",0); etc jusqu'à 2225
  • boutton connection pour ce connecter et se dconnecter du modem


Les procédures ou fonctions principalent:
  • Connection(HWND hwnd) //pour se connecter au modem
  • Addline(char* mBuf) //notre Addline de Nebula modifié
  • ClientRecv(void* arg) //code de Nebula modifié (Thread)
  • Reception() //création du thread pour la reception du serveur telnet (recv)
  • login() //pour se connecter au modem


En esperant que ce code serve.
@+
youpi

Source / Exemple :


j'ai changer le font du control edit pour qu'il n'y est pas de décalage dans les caractères:

static HFONT police;
police= CreateFont(10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "Lucida Console");
SendMessage(GetDlgItem(hwnd,IDC_EDIT5),WM_SETFONT,(WPARAM)police,TRUE);

Conclusion :


reste a améliorer encore un peu le traitement du recv, il reste encore des fioritures, notament lors d'un send.
exemple send(s,"nat list\r",9,0);

le addline correspond à
"
=>
=>n
=>na
=>nat
=>nat
=>nat l
=>nat li
=>nat lis
=>nat list
=>nat list " //corriger par la fonction checkline

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.