Arduino to Arduino Communication via Ethernet

I am having issues with communication between two arduino UNOs with attached ethernet shields. One is sending UDP packets every second or so simply saying "Hello world". The other should receive these packets and then print the content to serial console.

Transmitter

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

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //Destination MAC address

IPAddress ip(192, 168, 0, 25); //Local IP address
IPAddress destIp(192,168,0,21); //Destination ip address

unsigned int localPort = 5000; // local port to listen on
unsigned int destPort = 5005; //Destination port

EthernetUDP Udp; //Instance of UDP

char message[] = "Hello World!";

/*Initialise the sending of data using UDP over ethernet*/
void setup() {

Serial.begin(9600);

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

void loop() {

  Udp.beginPacket(destIp, destPort); //Start Packet

    Udp.write(message);

    Udp.endPacket(); //Close Packet

    Serial.println("Message Sent"); //Send Confirmation message
}

Receiver

/*
  UDPSendReceive.pde:
 This sketch receives UDP message strings, prints them to the serial port
 and sends an "acknowledge" string back to the sender
 
 A Processing sketch is included at the end of file that can be used to send 
 and received messages for testing with a computer.
 
 created 21 Aug 2010
 by Michael Margolis
 
 This code is in the public domain.
 */


#include <SPI.h>         // needed for Arduino versions later than 0018
#include <EthernetV2_0.h>
#include <EthernetUdpV2_0.h>         // UDP library from: bjoern@cs.stanford.edu 12/30/2008


// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = {  
  0x90, 0xA2, 0xDA, 0x10, 0x5F, 0x92 };
IPAddress ip(192, 168, 0, 21);

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

// buffers for receiving and sending data
char packetBuffer[UDP_TX_PACKET_MAX_SIZE]; //buffer to hold incoming packet,
char  ReplyBuffer[] = "acknowledged";       // a string to send back

// An EthernetUDP instance to let us send and receive packets over UDP
EthernetUDP Udp;
#define W5200_CS  10
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);
    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);

    // 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(10);
}

Currently the output I'm receiving from the serial console is:

Received packet of size -256
From 0.0.0.0, port 0
Contents:

The TX LED on the transmitter is flashing, as is the orange LED at the RJ45 jack. At the receiver side, only the ACT LED is flashing. I should also point out, one is a regular ethernet shield and one is version 2 so I'm using the newer library for this version.

Where did you get the UDP library you are using?

Sorry I tried to quickly added that in but the 5 minute post rule prevented me. Transmitter using ethernet 1 library and receiver using ethernet 2 library.

Transmitter using ethernet 1 library and receiver using ethernet 2 library.

That you got from the discount bin at WalMart?

Ebay. I've tested it already by transmitting and receiving data to a raspberry Pi and had no problems. The Ethernet shield 2 is legitimate and bought from an electronics store.

Rossb93:
Ebay. I've tested it already by transmitting and receiving data to a raspberry Pi and had no problems. The Ethernet shield 2 is legitimate and bought from an electronics store.

You got the EthernetUdpV2_0 library on Ebay? I hope you didn't pay too much.

Why are you not using the same version on both Arduinos?

PaulS:
You got the EthernetUdpV2_0 library on Ebay? I hope you didn't pay too much.

Why are you not using the same version on both Arduinos?

...

Because the Ethernet shield 1 library is for the W5100 ethernet chip and the Ethernet shield library 2 is for the W5500 ethernet chip