Un socket è un canale di comunicazione tra due processi...
Diciamo che è una porta che un processo mette a disposizione per un altro processo.

Una volta creato il canale sarà possibile scambiare i dati.

I protocolli di comunicazione più famosi sono TCP, UDP.

Non ti consiglio UDP perchè è un protocollo inaffidabile senza connessione.