Sommaire

Principes des sockets Socket

1. Rôle des sockets

Les sockets (de l’anglais socket : prise, connecteur) sont une méthode de communication entre processus, en local ou à travers un réseau.

Les documentations en français emploient généralement le terme socket, sans le traduire. On trouve le plus souvent le mot au féminin, mais il est parfois au masculin. Nous suivons la traduction française du manuel Linux, une socket.

D’origine Unix BSD, les sockets sont devenues un standard de fait dans le monde Unix, avant d’être normalisées POSIX, puis complétées et intégrées au standard SUS. Elles sont implémentées sur de nombreux systèmes d’exploitation, y compris Windows (winsocks).

La version Linux des sockets est gérée par un seul appel système, socketcall(). Cependant, pour des raisons de facilité et de portabilité, il est fortement conseillé d’utiliser les fonctions de la bibliothèque sockets, intégrée dans la bibliothèque standard de gcc. Dans la suite du chapitre, nous considérerons ces fonctions comme des appels système unitaires.

2. Types de sockets

Les sockets peuvent gérer deux types d’échange de données, le mode stream (flot) et le mode datagramme.

a. Stream

Le mode stream (SOCK_STREAM) permet à deux processus d’établir une connexion bidirectionnelle entre eux, puis de s’échanger ...