Mandare un pacchetto UDP

Ho bisogno di mandare pacchetti UDP verso il PC.
Ho preso l' esempio UDPSendReceiveString e l' ho ripulito...
Non funziona, non invia nulla.

Se pero' rimetto la linea "Udp.parsePacket();" ed invio qualsiasi cosa dal PC all'Arduino, questo si mette a trasmettere !
Perche' ?

Arduino UNO R3 + EthernetShield R3 (Wiznet5100)

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


byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xE0};
IPAddress ip(192, 168, 90, 170);
IPAddress remote(192, 168, 90, 140);
int counter = 0;

EthernetUDP Udp;

void setup(){
  Ethernet.begin(mac,ip);
  Udp.begin(9000);
}


void loop() {
    Udp.parsePacket();
    Udp.beginPacket(Udp.remoteIP(), 9000);
    Udp.write(counter);
    Udp.endPacket();
    delay(1000);
    counter ++;
}

spiega meglio il fatto dell'istruzione "Udp.parsePacket();", che succede se non lo metti e se lo metti

lesto:
spiega meglio il fatto dell'istruzione "Udp.parsePacket();", che succede se non lo metti e se lo metti

Dal Playground ufficiale leggo che Udp.parsePacket(); va a leggere il pacchetto ricevuto e ne restituisce la lunghezza (nel caso sia stato ricevuto un pacchetto)
E' scritto che bisogna usarlo (ovviamente) prima di ogni lettura (ricezione) di dati.

Da nessuna parte pero' c'e' scritto che bisogna usarlo prima di inviare dati.

Il fatto e' che se non ricevo dei dati, non posso inviarli. Sembrerebbe che la libreria sia fatta per poter RISPONDERE e non INVIARE. Ovvero si puo' solo inviare dei dati a chi te ne ha inviati in precedenza.