Can't receive UDP packet via Wifi Shield

Dear all,
I’m trying to receive UDP packet from Parrot AR.Drone 2.0 (quadrotor) to my arduino through the Wi-Fi network ,but the problem is that Ar.Drone used port 5554 and 5556 to listen for UDP packet.Then, it will send back a UDP packet to the destination port, but I don’t know which local port I should set in arduino .

Here is my code:

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

char ssid[] = "ardrone_017183";     // the name of your network
int status = WL_IDLE_STATUS;     // the Wifi radio's status
int incomingByte = 0;   // for incoming serial data
unsigned int localPort = 5554;      // local port to listen for UDP packets
IPAddress timeServer(192, 168, 1, 1); 
const int PACKET_SIZE = 1024; 
int controlPort = 5556;
char replyBuffer[255];
WiFiUDP Udp;


void setup() {
  //Initialize serial and wait for port to open:
  Serial.begin(9600); 
  while(1)
  {
                // read the incoming byte:
                incomingByte = Serial.read();
                // say what you got:
                Serial.println("Waiting for input '1' ");
                if(incomingByte==49)
                break;
                //delay 1sec
                delay(3000);
  }
  while (!Serial) 
  {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
  
  // check for the presence of the shield:
  if (WiFi.status() == WL_NO_SHIELD) 
  {
    Serial.println("WiFi shield not present"); 
    // don't continue:
    while(true);
  } 
  
 // attempt to connect to Wifi network:
  while ( status != WL_CONNECTED) 
  { 
    Serial.print("Attempting to connect to open SSID: ");
    Serial.println(ssid);
    status = WiFi.begin(ssid);
  // status = WiFi.begin(ssid,pass);
    // wait 10 seconds for connection:
    delay(10000);
  }
   
  // you're connected now, so print out the data:
  Serial.print("You're connected to the network");
  printWifiData();
  Udp.begin(localPort);
}

void loop() {
  sendUDPpacket(timeServer); // send an UDP packet to a time server
  delay(1000);
  navData();
}


unsigned long sendUDPpacket(IPAddress& address)
{
  Serial.println(address);
 
   char  packetBuffer[] = "{0x01, 0x00, 0x00, 0x00}";
  Udp.beginPacket(address, controlPort);
  Udp.write(packetBuffer);
  Udp.endPacket(); 
  
  Udp.beginPacket(address, controlPort);
  Udp.write(packetBuffer);
  Udp.endPacket(); 
  delay(50);
  Udp.beginPacket(address, 5554);
  Udp.write("AT*CONFIG=3,\"general:navdata_demo\",\"TRUE\"\r");
  Udp.endPacket(); 

}

void navData(){
  
  int packetSize = Udp.parsePacket();
  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(replyBuffer,255);
    if (len >0) replyBuffer[len]=0;
    Serial.println("Contents:");
    Serial.println(replyBuffer);
  }
  else
   Serial.println("No income");
}