erpomata:
Infatti, inviando al client una riga per volta funziona.
Quando fai
Serial.print(char(c));
Stampi un carattere all volta
Non mi pare che tu abbia inserito un controllo sul \r \n come riferimento per l'invio
Per scrivere una riga alla volta dovresti usare form.endsWith(string2) dove string2 rappresenta i caratteri che per te sono i terminatori di riga
Dopo di che stampi form e lo cancelli per "riempirlo" con la riga successiva
Secondo me se la stringa fosse troppo lunga manderesti in crash Arduino