arduino si riavvia da solo ... poca ram?

void Leggi_SD(){
 char n;
  myFile = SD.open("KKKVigne.txt", FILE_READ);
  if (myFile) {
    Serial.println(F("Inizio a Leggere KKKVigne:"));
    if (client.connect(server, 80)){ 
      Serial.println(F("Connesso al Server"));  // debug
        while (myFile.available()) {
        n = myFile.read();
        
          if ( char('#') == n ){   
            client.println();
            client.println(Host);
            client.println();
            delay(50);
            
            client.stop();
            delay(50);
            (client.connect(server, 80));
            Serial.println(F("nuovo dato inviato")); // debug
          } 
          else {
    	    client.print(n);
                        
          }
        }
      myFile.close();
      Serial.println(F("Chiudo SD"));
      client.stop();
      Serial.println(F("Chiudo Socket TCP"));
      
      }
      else {
        // if the file didn't open, print an error:
        Serial.println(F("Errore invio"));
      }
} else {

    Serial.println(F("errore apertura KKKVigne.txt"));
  }
}//fine leggi sd

il mio problema ora è : se lascio cosi tutto bene ma apro e chiudo la connessione ad ogni riga... (mi sembra poco furbo, inoltre alcuni firewall potrebbero rilevarmi come attacco).

se tolgo ad ogni riga un chiudi connessione e riaprila, arrivati a 30 righe arduino continua a mandare ma l'ethernet shield non fa uscire piu nulla.... c'è un motivo?