2. La communication par socket
2.1. Pourquoi les sockets ?
Il s'agit d'un modèle permettant la communication inter processus (IPC - Inter Process
Communication) afin de permettre à divers processus de communiquer aussi bien sur
une même machine qu'à travers un réseau TCP/IP .
La communication par socket est souvent comparée aux communications humaines. On
distingue ainsi deux modes de communication:
• Le mode connecté
(comparable à une communication téléphonique), utilisant le
protocole
TCP
. Dans ce mode de communication, une connexion durable est établie entre les deux
processus, de telle façon que l'adresse de destination n'est pas nécessaire à chaque envoi de
données.
• Le mode non connecté
(analogue à une communication par courrier), utilisant le
protocole UDP
. Ce mode nécessite l'adresse de destination à chaque envoi, et aucun accusé
de réception n'est donné.
TCP/IP est une suite de protocoles. Le sigle TCP/IP signifie «Transmission Control
Protocol/Internet Protocol» et se prononce «T-C-P-I-P». Il provient des noms des
deux protocoles majeurs de la suite de protocoles, c'est-à-dire les protocoles TCP et IP).
TCP/IP représente d'une certaine façon l'ensemble des règles de communication sur
internet et se base sur la notion adressage IP, c'est-à-dire le fait de fournir une adresse
IP à chaque machine du réseau afin de pouvoir acheminer des paquets de données. Etant
donné que la suite de protocoles TCP/IP a été créée à l'origine dans un but militaire, elle
est conçue pour répondre à un certain nombre de critères parmi lesquels :
• Le fractionnement des messages en paquets ;
• L'utilisation d'un système d'adresses ;
• L'acheminement des données sur le réseau (routage) ;
• Le contrôle des erreurs de transmission de données.
La connaissance de l'ensemble des protocoles TCP/IP n'est pas essentielle pour un simple
utilisateur, au même titre qu'un téléspectateur n'a pas besoin de connaître le
fonctionnement de son téléviseur, ni des réseaux audiovisuels. Toutefois, sa
connaissance est nécessaire pour les personnes désirant administrer ou maintenir un
réseau TCP/IP.
2.2. Définition d'un socket
Le socket est un "canal" de communication bi-directionnel entre deux processus se
trouvant ou non sur la même machine. Il est caractérisé par :
• une adresse IP (Inter Process)
• un numéro de port
Pour créer un socket entre 2 processus, il faut que un des deux processus soit en attente
de demande de création d'un socket de la part de l'autre. On appelle le premier le
serveur de socket, le deuxième le client. L'initiative de fermer le socket est normalement
donnée au serveur bien que le client peut fermer lui aussi le socket.
Le socket est créé à l'initiative du client.
Sur un même serveur, on peut créer plusieurs sockets de port différent.