curl is a command line tool for transferring files with URL syntax, supporting FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, FILE and LDAP.
mentre socket permette di aprire una porta qualsiasi, e di inviare tramite la porta aperta i comandi per poter comunicare con il protocollo in ascolto...

Ad esempio con socket puoi aprire la porta 25 di un server smtp, autenticarti e spedire una mail, con curl no.

ciao