2 pièce(s) jointe(s)
esp8266 comme client wifi ne transmet pas
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:
Code:
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();
} |
Comme le dit le commentaire, ça fonctionne, le serveur reçoit bien la chaîne Hello.
Une copie d'écran des échanges client/serveur capturés avec Wireshark.
Pièce jointe 395647
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:
Code:
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();
} |
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.
Une copie d'écran des échanges client/serveur capturés avec Wireshark.
Pièce jointe 395649
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.