help etherneth shield

Secondo me dovresti procedere in questo modo:
nel setup inizializzi la seriale e la scheda ethernet (con o senza dhcp)
nel loop invece controlli la ricezione della seriale e acquisisci il messaggio. Quando il messaggio è completo lo passi come parametro ad un "select case" che in base al codice letto richiama una funzione che invia i parametri alla seconda scheda ethernet.
Al posto del select case potresti crearti una sola funzione che accetta un parametro in ingresso e si comporta di conseguenza.

Esempio di pseudo codice:

#include bla bla bla

inizializzazioni variabili globali
bla bla bla

void setup() {
Serial.begin(9600);
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
for(;; ) ;
}
}

void loop() {
if (Serial.available() > 0) {

leggi il messaggio
}

if (messaggio == completo) {

funzione invia testo via ethernet(messaggio)
}
}

void invia testo via ethernet(messaggio){

apri client bla bla bla
invia il testo xxyyzz in base al comando ricevuto
chiudi il client bla bla bla
}