Una socket è un’API di comunicazione tra il livello di applicazione e il livello di trasporto dello stack protocollare TCP-IP. È una struttura dati creata e usata dal programma applicativo che fa comunicare tra un processo client e un processo server (che sta in ascolto) in esecuzione sullo stesso host o di due host diversi, in connessione logica.
Ogni socket è indirizzata da un socket address fatto da un indirizzo IP (Internet Protocol) (32 bit) e un numero di porta (16 bit).
Tra due socket in comunicazione, l’indirizzo locale di una direzione è l’indirizzo remoto nell’altra direzione e viceversa.
N.B.: Sulla stessa porta possono essere attive più socket. I server web hanno socket differenti per ogni connessione client.