J'ai modifié un bout de code pour essayer de me connecter en Telnet sur un PC....
J'y arrive.... des fois
Mon soucis est que je n'arrive pas à synchroniser la réponse du login et du password avec leurs demande respective, la plupart du temps, le password est écrit avant que la demande en soit faite, ce qui me donne :
connecting to server...
connected
ÿýÿýÿûÿûlogin: root
root
Password:
et avec d'autres essais (en changeant le code) :
connecting to server...
connected
ÿýÿýÿûÿûlogin: root
root
Password:root
BusyBox v1.21.0.git (2012-09-09 13:41:47 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.
J'ai passé la matinée à essayer de différente manière de faire tomber juste le password, en mettant des if, des flags, en testant le dernier char dans le buffer.... mais le résultat est toujours foireux
Voici le code expurgé de mes essais:
void loop(){
if (client.connected()) {
checke_page();
client.println("root");
}
else if (millis() - lastAttemptTime > requestInterval) {
// if you're not connected, and two minutes have passed since
// your last connection, then attempt to connect again:
connectToServer();
}
}
// lit ce qui se trouve sur la page
void checke_page(){
if (client.available()) {
char c = client.read();
Serial.print(c);
}
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting.");
client.stop();
}
}
// connection au serveur
void connectToServer() {
flag=0;
// attempt to connect, and wait a millisecond:
Serial.println("connecting to server...");
if (client.connect(server, 23)) {
Serial.println("connected");
}
// remettre le compteur a zero pour la prochaine connexion:
lastAttemptTime = millis();
}
Comment pourrais je attendre l'invitation du login et du password pour remplir les champs, en cas d'interruption de la connection la relancer avec le login et tout le baratin ?
Il faut qu'un fois logguer, je puisse envoyer des commandes prédéfinies ou lire le contenu d'un fichier.