Socket
Réalisation d’un projet réseau
La realisation d’un projet réseau est basée sur l’utilisation des sockets (BSD, Windows). Il y a quelques nuances selon le système utilisé, mais dans l’ensemble, lesfonctions et comportements sont identiques. Le but de cet article est de montrer la réalisation de clients / serveurs en UDP/IP et TCP/IP.
Sockets
Introduction
Les sockets sont des flux dedonnées (octets) très similaires aux flux d’entrée / sortie standards ou aux fichiers, mais qui permettent de réaliser des connexions de données bidirectionnelles entre des machines (locales ou distantes)via un réseau de données (boucle, réseau local, Internet, X.25 etc.). Ils sont mis en oeuvre via une série de fonctions regroupées sous le nom de API sockets ou sockets BSD ou sockets.
ProtocolesLes connexions de données sont gérées par différent protocoles (niv 3 et 4) et différentes liaisons (niv. 2) et interfaces physiques (niv. 1). Les sockets ignorent les interfaces (gérées par lesdrivers systèmes), mais connaissent les protocoles de niveau 3 et 4 (IP, UNIX / TCP, UDP, etc.). Ensuite, ils savent travailler en mode non connecté (datagrams, simple, pas de vérification, ordreindéterminé) ou connecté (paquets, plus complexe, données vérifiées, integrité des données, ordre garanti).
Par exemple, le protocole de niveau 3 IP (Internet Protocol) sait travailler en mode de niveau 4connecté (TCP) ou non connecté (UDP).
Fonctions
Les sockets sont manipulés par des fonctions générales :
* socket()
* close() ou closesocket()
* send(), recv(), (mode connecté)
*sendto(), recvfrom() (mode non connecté)
* et des fonctions spécialisées qui dépendent si l’application est un serveur ou un client et si on utilise un mode connecté ou non.
Serveur
*bind() (TCP)
* listen()
* accept() (mode connecté)
Client
* connect() (mode connecté)
Rappel : La documentation complète des fonctions se trouve dans les ‘pages man’,…