There are a couple things are not correct.
- Do not use the protocol on the server name
// change this...
char serverName[] = "http://www.abc.com";
...to this
char serverName[] = "www.abc.com";
- This has the wrong parameters.
// change this...
Ethernet.begin(mac, ip, subnet, gateway);
...to this
Ethernet.begin(mac, ip, gateway, gateway, subnet);
The first gateway is actually the dns server. If you are using dns and a dns server, specify that in your network stuff and use it there. Like this:
IPAddress dnServer(1,2,3,4);
Ethernet.begin(mac, ip, dnServer, gateway, subnet);