L'inizializzazione Ethernet.begin(mac, ip, gateway, subnet);
è errata. Quella corretta è:
Ethernet.begin(mac, ip, dns ,gateway);
oppure
Ethernet.begin(mac, ip, dns, gateway, subnet);
Se non hai il DNS usa
Ethernet.begin(mac, ip, gateway, gateway, subnet);
Per i serial print e i client print usa la funzione F().
Cosi:
client.println("-A---");
diventa
client.println(F("-A---"));
Solo per il testo, non per le variabili.