WiFi Shield, Pacchetti UDP

Salve sto cercando di comunicare in locale con un programma c# e arduino munito di wifi shield. Non riesco a far leggere pacchetti UDP ad Arduino ma neanche a mandarlo ecco qua il codice di prova limitato al minimo solo per questa funzione.

#include <WiFi.h>
#include <WiFiUdp.h>

int status = WL_IDLE_STATUS;
char ssid[] = "MySSID";     //  your network SSID (name)
char pass[] = "PW";    // your network password

unsigned int localPort = 34567;      // local port to listen on

char packetBuffer[255]; //buffer to hold incoming packet
char  ReplyBuffer[] = "acknowledged";       // a string to send back

WiFiUDP Udp;

void setup() {
  //Initialize serial and wait for port to open:
  Serial.begin(9600);

  boolean shieldOn = true;
  
    // check for the presence of the shield:
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("WiFi shield not present");
    shieldOn = false;
  }

  if(shieldOn)
  {
      // attempt to connect using WPA2 encryption:
    Serial.println("Attempting to connect to WPA network...");
    status = WiFi.begin(ssid, pass);
  
    // if you're not connected, stop here:
    if ( status != WL_CONNECTED) {
      Serial.println("Couldn't get a wifi connection");
    }
    // if you are connected, print out info about the connection:
    else {
      Serial.println("Connected to network");
      Serial.print("SSID: ");
      Serial.println(WiFi.SSID());
      
        // print the received signal strength:
      long rssi = WiFi.RSSI();
      Serial.print("signal strength (RSSI):");
      Serial.print(rssi);
      Serial.println(" dBm");
    }

    // print your WiFi shield's IP address:
    Serial.print("IP Address: ");
    Serial.println(WiFi.localIP()); 
  }
 
    Serial.println("\nStarting connection to server...");
    // if you get a connection, report back via serial:
    Udp.begin(localPort); 
}

void loop() {
   
  // if there's data available, read a packet
  int packetSize = Udp.parsePacket();
  Serial.print("Packetsize: ");
  Serial.println(packetSize);
  
  if(packetSize)
  {  
    Serial.print("Received packet of size ");
    Serial.println(packetSize);
    Serial.print("From ");
    IPAddress remoteIp = Udp.remoteIP();
    Serial.print(remoteIp);
    Serial.print(", port ");
    Serial.println(Udp.remotePort());

    // read the packet into packetBufffer
    int len = Udp.read(packetBuffer,255);
    if (len >0) packetBuffer[len]=0;
    Serial.println("Contents:");
    Serial.println(packetBuffer);
   
    // send a reply, to the IP address and port that sent us the packet we received
    Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
    Udp.write(ReplyBuffer);
    Udp.endPacket();
   }

   delay(5000);
}

C#

UdpClient server = new UdpClient("192.168.1.246", 34567);

int z = server.Send(Encoding.ASCII.GetBytes("ARDUINOARDUINOARDUINOARDUINOARDUINO"), Encoding.ASCII.GetBytes("ARDUINOARDUINOARDUINOARDUINOARDUINO").Length);
Console.WriteLine(z);

L'Ip della shield lo controllo sempre.

up