Pasar valor recibido por UDP a una variable local

como pasa siempre, necesito una mano y esta vez quizas sea una niñeria, pero me gano.
tengo este codigo

void loop()
{
int memoria = 0;
 int packetSize = Udp.parsePacket();
  if (packetSize) {
    Serial.print("Recibido mensaje de tamaño ");
    Serial.println(packetSize);
    Serial.print("De ");
    IPAddress remote = Udp.remoteIP();
    for (int i = 0; i < 4; i++) {
      Serial.print(remote[i], DEC);
      if (i < 3) {
        Serial.print(".");
      }
    }
    Serial.print(", puerto ");
    Serial.println(Udp.remotePort());

 Udp.read(packetBuffer, UDP_TX_PACKET_MAX_SIZE);
    Serial.println("Contenido:");
    memoria = packetBuffer;  
    Serial.println(packetBuffer);

memoria según yo debería adquirir el valor numérico que recibo por udp desde un lugar remoto.
esto jamas ocurre, memoria queda con un valor 1096, llegue lo que llegue.
por ende no lo puedo comparar con nada como para usarlo para desencadenar alguna accion en base al dato recibido.
mi pregunta es.
como rayos le hago para que memoria tome el valor de packetBuffer?

Quizá:

Udp.read(packetBuffer, packetSize);

PD:

Serial.println(packetBuffer);

Hacer esto podría desbordar el mismo buffer (consecuencia: caracteres "basura" en la impresión); a menos que el paquete siempre acabe en '\0' (byte con valor cero).

Una comunicación UDP requiere de un puerto, si no usas el mismo puerto para enviar/recibir nunca leerás nada.

Nada dices del elemento que esta enviando y si compartes el mismo puerto. Algo que se ve en el setup que no esta disponible.

Revisa eso por favor.

UDP send receive string example

agradezco sus respuestas, obviamente el sketch no esta completo, esto debido a su extencion.
quizas deba subirlo completo...

por su extencion tuve que adjuntar el sketch.
lo que hace es configurar los parámetros ip Gateway mascara de subred y dirección del otro par osea cliente o servidor es indiferente.
junto con esto posee un feedback al emisor para asegurar mediante un led la correcta recepción y procesamiento de la instrucción.

udpswitch.ino (17.8 KB)

Encontré esto :

  // if there's data available, read a packet
  int packetSize = Udp.parsePacket();

Serial.println(packetSize);
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());

    // read the packet into packetBufffer
    Udp.read(packetBuffer,UDP_TX_PACKET_MAX_SIZE);
    Serial.println("Contents:");
    Serial.println(packetBuffer);
    Serial.println(packetBuffer[0]);
  
    if(packetBuffer[0]=='1'){
      digitalWrite(2,HIGH);
    }else if(packetBuffer[0]=='2'){
       digitalWrite(2,LOW);
    }

Si cambio la acción en el if por memoria = packetbuffer[0];
Funcionaria?
Mañana lo hago y comento.

lo solucione XD.
gracias por su ayuda…
lei un poco mas y di con el problema.
saludos amigos, les dejare la solucion aqui

void loop()
{
unsigned int memoria = 0;
  int feedback = 0;
  ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 // if there's data available, read a packet
  int packetSize = Udp.parsePacket();
  if (packetSize) {
    Serial.print("Recibido mensaje de tamaño ");
    Serial.println(packetSize);
    Serial.print("De ");
    IPAddress remote = Udp.remoteIP();
    for (int i = 0; i < 4; i++) {
      Serial.print(remote[i], DEC);
      if (i < 3) {
        Serial.print(".");
      }
    }
    Serial.print(", puerto ");
    Serial.println(Udp.remotePort());

    // read the packet into packetBufffer
    Udp.read(packetBuffer, UDP_TX_PACKET_MAX_SIZE);
    Serial.println("Contenido:");
    Serial.println(packetBuffer);
    if(packetBuffer[0]=='1'){
      memoria = 1;
    }else if(packetBuffer[0]=='0'){
       memoria = 0;
    }
    if(packetBuffer[0]=='2') {
    feedback = 1;
    }
    if(packetBuffer[0]!='2') {
      feedback = 0;
    }
    }
  delay(10);

la pagina web en ocaciones por no decir siempre cuelga, creo que al arduino, o la conexión.
aun no estoy seguro.
sugerencias?
pd: he agregado un wdt y cuando se ha colgado solo se ha solucionado, pero eso dificulta un poco la seguridad de recepcion del dato, creo que agregare un tiempo de espera por el feedback. si este no se recibe que vuelva a enviar el dato.