Arduino ethernet + Relay shield - Ping and WebServer

Puoi avere solo 4 socket.
Inoltre sbagli l'inizializzazione della ethernet.
Con 4 paramenti devi passare

Ethernet.begin(mac, ip, dns, gateway);

Mentre per passare la netmask devi utilizzare l'inizializzazione con 5 paramenti.

Ethernet.begin(mac, ip, dns, gateway, subnet);

Nel tuo caso puoi mettere:

Ethernet.begin(mac, ip, gw, gw, sub);

--> Ethernet - Arduino Reference