Un socket réseau est un point d'extrémité dans un flux de communication entre deux programmes s'exécutant sur un réseau.
Les sockets sont créés et utilisés avec un ensemble de requêtes de programmation ou "appels de fonction" parfois appelés interface de programmation d'application (API) sockets. L'API de sockets la plus courante est l'interface C Berkeley UNIX pour les sockets. Les sockets peuvent également être utilisés pour la communication entre les processus d'un même ordinateur.
C'est la séquence typique de demandes de sockets d'une application serveur dans le contexte sans connexion d'Internet dans lequel un serveur traite de nombreuses demandes de clients et ne maintient pas une connexion plus longtemps que la desserte de la demande immédiate :
- 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.