EthernetUDP works only for first client

I am using ethernet shield ENC28J60 with Arduino Nano and I want to establish UDP communication. Unfortunately it works only for first client. When first client disconnects and second client connects, nothing will appear in console anymore. For some reason Udp.parsePacket() returns 0 from that point on. This is example from Arduino site. What I am missing? Thank you for help.

#include <Arduino.h>
#include <UIPEthernet.h>

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = {  
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192, 168, 100, 177);

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

// An EthernetUDP instance to let us send and receive packets over UDP
EthernetUDP Udp;

void setup() {
  // start the Ethernet and UDP:
  Ethernet.begin(mac,ip);
  Udp.begin(localPort);

  Serial.begin(9600);
}

void loop() {
  // if there's data available, read a packet
  int packetSize = Udp.parsePacket();
  if(packetSize)
  {
    Serial.print("Received packet of size ");
    Serial.println(packetSize);
  }
  delay(10);
}

May be missing to tell us more about your setup?

yes and I can't fix it in UIPEthernet. use EthernetENC
I maintain both libraries.

@Juraj Nice, it works very well, the best library yet (I have tried like 3 or 4 else before). Thank you for your contribution!

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.