Mini-chat
Programmation TCP/IP
Encadré par :
M. HABBANI Ahmed
IntroductIon
La notion de socket a été introduite dans les distributions de Berkeley (un fameux système de type UNIX, dont beaucoup de distributions actuelles utilisent des morceaux de code), c’est la raison pour laquelle on parle parfois de sockets BSD (Berkeley Software Distribution). 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é.
Les sockets sont généralement implémentés en langage C, et utilisent des fonctions et des structures disponibles dans la bibliothèque .
A l’aide des sockets nous avons réalisé un mini-chat qui permet une communication instantanée principalement sous la forme de discussions en groupe par l’intermédiaire des canaux de communication, mais peut aussi être utilisé pour de la communication de un à un.
I.
Les principales fonctions utilisées :
1. Socket()
• int socket(famille, type, protocole) Permet de créer un socket. Elle renvoie un entier qui correspond à un descripteur du socket nouvellement créé et qui sera passé en paramètre aux fonctions suivantes. En cas d’erreur, la fonction socket() retourne -1.
2. bind()
• bind(int descripteur, sockaddr localaddr, int addrlen)