Un socket di rete è un endpoint in un flusso di comunicazione tra due programmi in esecuzione su una rete.
I socket sono creati e utilizzati con un insieme di richieste di programmazione o "chiamate di funzione" a volte chiamate API (application programming interface) sockets. L'API di socket più comune è l'interfaccia Berkeley UNIX C per i socket. I socket possono anche essere usati per la comunicazione tra processi all'interno dello stesso computer.
Questa è la tipica sequenza di richieste di sockets da parte di un'applicazione server nel contesto connectionless di Internet in cui un server gestisce molte richieste client e non mantiene una connessione più a lungo del servizio della richiesta immediata:
- socket()
- |
- bind()
- |
- recvfrom()
- |
- (wait for a sendto request from some client)
- |
- (process the sendto request)
- |
- sendto (in reply to the request from the client...for example, send an HTML file)
A corresponding client sequence of sockets requests would be:
- socket()
- |
- bind()
- |
- sendto()
- |
- recvfrom()
Sockets can also be used for "connection-oriented" transactions with a somewhat different sequence of C language system calls or functions.
The Secure Sockets Layer (SSL) is a computer networking protocol that manages server authentication, client authentication and encrypted communication between servers and clients.