WiFi Shield loses connection after command

Hi guys! I'm startin a project to control my arduino robo using wifi connection. My problem: WiFi Shield loses connection after recieve a command that I send with an Android apk that I did.

Hardware: Original Arduino Rev2, Original WiFi Shield

Android APK: Just send a string to an IP

Arduino Sketch:

void setup()
{
  pinMode(Motor1_1, OUTPUT);       // Coloca o pino do Motor 1 como saída de dados
  pinMode(Motor1_2, OUTPUT);       // Coloca o pino do Motor 1 como saída de dados
  pinMode(Motor2_1, OUTPUT);       // Coloca o pino do Motor 2 como saída de dados
  pinMode(Motor2_2, OUTPUT);       // Coloca o pino do Motor 2 como saída de dados
  pinMode(statusLedPin, OUTPUT);   // Coloca o pino do LED de status como saída de dados
    
  WiFi.begin(ssid, pass);  // Inicia a conexão WiFi
  server.begin();          // Inicia o servidor
  
  digitalWrite(statusLedPin, HIGH); // Liga o LED de status
}

void loop()
{
  WiFiClient client = server.available();  // Cria o cliente para o servidor caso haja conexão
  if (client)                          // Se houver cliente, 'limpa' a requisiçao http depois de criado o cliente
  {
    boolean newLine = true;
    String line = "";
  
  
    while (client.connected() && client.available())   // Enquanto há cliente e se este está conectado
    {
      char c = client.read();  // Cria um char que verificara se esta na ultima linha da requisicao http
      
      if (c == '\n' && newLine)   // Verifica se está no fim da linha e se recebeu uma linha em branco, significa que terminou uma requisiçao      
        client.println("HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n");           // Envia uma resposta http genérica
      if (c == '\n')           // Está iniciando uma nova linha
      {
        newLine = true;
        validarLine(line);
        line = "";
      }
      else if (c != '\r')      // Há caractere na linha atual
      {
        newLine = false;
        line += c;
      }
    }
    validarLine(line);
    
    delay(1);      // delay necessário para requisiçao http
    client.stop();
  }
}

void validarLine(String line)
{
  if (line.startsWith("tag", 0))  // Se a linha foi iniciada, cria uma variavel 'entrada' que recebera a requisicao completa
  {
    String entrada = line.substring(4, line.length());
    
    if (entrada == "w")
      frente();
    else if (entrada == "s")
      re();
    else if (entrada == "d")
      direita();
    else if (entrada == "a")
      esquerda();
    else
      parar();
  }
}


void parar()
{
  analogWrite(9, 0);
  analogWrite(6, 0);
  analogWrite(5, 0);
  analogWrite(3, 0);        
}

void frente()
{
  analogWrite(9, 255);
  analogWrite(6, 0);
  analogWrite(5, 255);
  analogWrite(3, 0);

  delay(900);  
  
  parar();     
}

void re()
{
  analogWrite(9, 0);
  analogWrite(6, 255);
  analogWrite(5, 0);
  analogWrite(3, 255);

  delay(900);  
  
  parar();   
}

void direita()
{
  analogWrite(9, 127);
  analogWrite(6, 0);
  analogWrite(5, 255);
  analogWrite(3, 0);

  delay(900);  
  
  parar();    
}

void esquerda()
{
  analogWrite(9, 255);
  analogWrite(6, 0);
  analogWrite(5, 127);
  analogWrite(3, 0);

  delay(900);  
  
  parar();
}

Which connection? To client or to wifi router?

Using string the way you do is frowned upon. It fragments the memory and eventually hangs Arduino. Learn some C string instead.

To WiFi router... the link led turn off

I'll try with an int...

thanks liudr!