Main

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

read()


Description

  • Lit les données UDP à partir du buffer spécifié (tableau d'octets). Si aucun n'argument n'est utilisé, la fonction renvoie le caractère suivant contenu dans le buffer.
  • Cette fonction ne pourra être appelée avec succès qu'après l'appel de la fonction .parsePacket()

Syntaxe


udp.read();
udp.read(packetBuffer, MaxSize);

Paramètres

  • udp : un objet EthernetUDP
  • packetBuffer: le buffer de réception des caractères UDP (tableau de char)
  • MaxSize: taille maximale du buffer de réception (int)

Valeur renvoyée

char : renvoie le caractère suivant du buffer de réception

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/EthernetUDPRead