bonjour,
Je teste les capacités wifi de mon esp8266 en tant que client pour une application future.
Le serveur tourne sur mon PC.
Une partie du code de mon client:
Comme le dit le commentaire, ça fonctionne, le serveur reçoit bien la chaîne Hello.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 int nb_octets = 0; if (client.connect(server, 3340)) { Serial.println("connected to server"); nb_octets = client.print(String("Hello")); //ça fonctionne Serial.println(); Serial.print(nb_octets); Serial.print(" octets ecrits."); client.stop(); }
Une copie d'écran des échanges client/serveur capturés avec Wireshark.
Dans mon application, j'aurai besoin de transmettre des résultats de mesures stockés dans un tableau de bytes. J'ai modifié mon client comme suit:
Le problème: seul le caractère 'H' est transmis alors que le pgm tourne bien 5 fois dans la boucle for, les différents affichages le prouvent. Le serveur ne reçoit que ce caractère.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 byte txt[] = {'H', 'e', 'l', 'l', 'o'}; if (client.connect(server, 3340)) { Serial.println("connected to server"); for(i=0;i<sizeof(txt); ++i) { client.write(txt[i]); //pas plus de succès avec client.print(txt[i]); Serial.print(txt[i]); nb_octets++; } Serial.println(); Serial.print(nb_octets); Serial.print(" octets ecrits."); client.stop(); }
Une copie d'écran des échanges client/serveur capturés avec Wireshark.
Ca me semble les mêmes trames que précédemment. Je tourne depuis un moment autour de ce problème, si quelqu'un a une idée...
Merci.
Partager