Utilisation des Sockets


Le code source complet des programmes

telecharger le code source des sockets


Exercice 1 :
Envoie de fichier par les sockets TCP/IP

Un programme serveur ouvre un socket TCP/IP et se met en écoute sur le port passé en paramètre à ce dernier, un client se connecte au serveur, envoie au serveur le nom d'un fichier passé en paramètre au client, puis envoie le contenu de ce fichier. De son coté, le serveur crée un nouveau fichier (s'il n'existe pas déjà) pour stocker le contenu du fichier envoyé par le client.

Exercice 2 : Serveur d'environnement en UDP

On souhaite écrire un serveur qui reçoit des requêtes de la part des clients et les traitent. Une requête prend une des deux formes suivantes : S id val pour associer la valeur val à l'identificateur id et : G id pour récupérer la valeur associée à l'identificateur id. Le client reçoit sur son propre socket les confirmations / réponses du serveur.

Exercice 3 : Mini-serveur FTP

On veut écrire un mini-serveur de transfert de fichier en utilisant les sockets TCP/IP, un client peut choisir une des options suivantes : « LIST » pour afficher les fichiers stockés sur le serveur, « DOWNLOAD » pour télécharger un fichier du serveur et enfin « UPLOAD » pour envoyer un fichier au serveur. Le serveur reçoit les requêtes du client sur un socket client et les traitent.

Exercice 4 : Communication de groupe en multicast

Ce programme permet à N processus dans un réseau local d'échanger des messages en temps réel sous la forme de texte via le terminal, chaque processus lance le programme avec la commande : $ mychat addr port pseudo.

Exercice 5 : Sonar & Ponger en broadcast

Un programme sonar diffuse toutes les 3 secondes le message "PING" en broadcast sur le port 9999 puis attend le message "PONG" des sites disponibles. De son coté, un site disponible (représenté par le programme ponger) envoie pour chaque message "PING" reçu, le message "PONG" à l'émetteur.

Exercice 6 : Fonction select

Un serveur mono-processus et mon-threadé reçoit des demandes de connexion sur plusieurs ports puis affiche l'adresse IP et le port sur lequel il a reçu la demande de connexion et enfin enregistre l'IP du client dans un fichier cxlog. On utilise la fonction select pour attendre sur plusieurs sockets (plusieurs ports).