Main

Référence : Langage Arduino : [ Mini | Standard | Etendue | Maxi ] Librairies : [ Vue d'ensemble | Synthèse ] Infos : [ Comparaison | Changements ]
Librairie Ethernet : Classe EthernetUDP

write()


Description

  • Ecrit des caractères UDP vers la connexion distante. L'appel de cette fonction doit être encadrée entre beginPacket() et endPacket(). beginPacket() initialise la paquet de données qui n'est pas envoyé tant que endPacket() n'est pas appelée.

Syntaxe


udp..write(message);

Paramètres

  • udp : un objet EthernetUDP
  • message: le message à envoyé (tableau de char)

Valeur renvoyée

  • byte : Renvoie le nombre de caractères envoyés. N'a pas besoin d'être lu.

Exemple



#include <SPI.h>      
#include <Ethernet.h>
#include <EthernetUdp.h>      


byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

IPAddress ip(192, 168, 1, 177); // ip du shield Ethernet

unsigned int localPort = 8888;      //port local à écouter

// tableaux de caractères pour recevoir des données
char packetBuffer[UDP_TX_PACKET_MAX_SIZE]; //caractères reçus
char  ReplyBuffer[] = "acknowledged";       // caractères à envoyer

EthernetUDP Udp;

void setup() {

  Ethernet.begin(mac,ip); // initialisation du Shield Ethernet

  Udp.begin(localPort); // initialisation UDP

  Serial.begin(9600);
}

void loop() {
  //si des données sont disponibles, lire le paquet
  int packetSize = Udp.parsePacket();
  if(packetSize)
  {
    Serial.print("Received packet of size ");
    Serial.println(packetSize);
    Serial.print("From ");
    IPAddress remote = Udp.remoteIP();
    for (int i =0; i < 4; i++)
    {
      Serial.print(remote[i], DEC);
      if (i < 3)
      {
        Serial.print(".");
      }
    }
    Serial.print(", port ");
    Serial.println(Udp.remotePort());

    //lit les données dans le tableau de réception
    Udp.read(packetBuffer,UDP_TX_PACKET_MAX_SIZE);
    Serial.println("Contents:");
    Serial.println(packetBuffer);

    // envoie une réponse au port et adresse qui l'a envoyé
    Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
    Udp.write(ReplyBuffer);
    Udp.endPacket();
  }
  delay(10);
}

 

Commentaires utilisateurs

Aucun commentaire


Page d'accueil de la référence Arduino en français

Corrections, suggestions et nouvelle documentation peuvent être postées sur le Forum Arduino ou à l'adresse suivante : support_at_mon-club-elec_point_fr

Le texte original de la référence Arduino est sous licence Creative Commons Attribution-ShareAlike 3.0 . Les exemples de code dans la référence sont dans le domaine public.

La présente traduction française commentée a été réalisée par Xavier HINAULT (2010-2012) (www.mon-club-elec.fr) et est sous licence Creative Commons Attribution-ShareAlike 3.0.

Cette page est une traduction de la page originale suivante : http://arduino.cc/en/Reference/EthernetUDPWrite