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 : 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();
}
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.
Nom : wiresharkClientOk.png
Affichages : 190
Taille : 98,3 Ko

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 : 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();
}
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.
Nom : wiresharkClientNotOk.png
Affichages : 188
Taille : 99,0 Ko

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.