• Aucun résultat trouvé

PR6 – Programmation réseaux TP no 7 : Programmation réseaux en C (suite) I) Encore un service

N/A
N/A
Protected

Academic year: 2022

Partager "PR6 – Programmation réseaux TP no 7 : Programmation réseaux en C (suite) I) Encore un service"

Copied!
2
0
0

Texte intégral

(1)

L3 Informatique Année 2015-2016

PR6 – Programmation réseaux

TP n

o

7 : Programmation réseaux en C (suite)

I) Encore un service

Exercice 1 : Connexion au service disponible sur le port 2628

1. Déterminer le nom du service qui se trouve sur le port 2628 et devinez ce qu’il fait.

2. La documentation de ce service est disponible sur Internet (RFC 2229). Parcourir cette documentation pour avoir une idée de ce que l’on peut faire avec ce service.

3. Se connecter à ce service sur la machine lucien avec la commande nc (qui fonctionne commetelnet) et tester quelques requêtes (une requête très utile : HELP).

4. Écrire un programme C qui prend en argument un mot et qui retourne sa définition si il la trouve. Pour cela utiliser le service disponible sur le port 2628.

II) Votre propre programme dictionnaire

Exercice 2 : Un client et un serveur pour un service de dictionnaire

Écrire un programme client et un programme serveur correspondant à un service de dic- tionnaire. Pour cela le client demande la définition d’un mot au serveur et celui-ci lui renvoie le texte obtenu par l’appel à l’utilitaire dict (voir man dict sur son terminal).

Si dict ne trouve pas de définition, le serveur renvoie un code d’erreur au client. Le serveur ferme alors la connection avec le client. Le serveur devra pouvoir accepter plu- sieurs connexions simultanées. Pour cela, on vous demande de programmer cela d’abord en créant de nouveaux processus avec fork(), puis en créant des processus légers.

Indications : Pour récupérer le résultat de la commande dict, on pourra s’inspirer du programme suivant :

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

int main(int charc,char * *argv) { char tab[50];

char *res="";

int i=1;

int taille_entree=strlen(argv[1]);

char * appel=malloc((6+taille_entree)*sizeof(char));

strcpy(appel,"dict ");

strcat(appel,argv[1]);

FILE * f=popen(appel,"r");

1

(2)

L3 Informatique Année 2015-2016

while(fgets(tab,50,f)!=NULL){

char *temp=res;

res=malloc(i*50*sizeof(char));

strcpy(res,temp);

strcat(res,tab);

i++;

}

printf("Resultat %s\n",res);

free(appel);

free(res);

}

III) IPv6

Exercice 3 :

Reprendre l’exercice 2 du TP6 mais cette fois-ci l’entité 1 reçoit de l’entité 2 une adresse IPv6.

2

Références

Documents relatifs

Écrire un programme qui prend 3 arguments fic, alire, pivot sur la ligne de commande, vérifie que fic est composé uniquement de chiffres et si c’est le cas, stocke dans une chaîne

Ce message aura la forme suivante : adresse_ip port\n où adresse_ip est une chaînes de caractère représentant une adresse IP et port est une chaîne de caractères représentant

Dans chacun des trois exercices ci-dessous, il s’agit d’écrire un serveur qui reçoit une image sous une certaine forme, la transforme en niveaux de gris et la renvoie sous une

Écrire un programme, ServeurMajuscule, représentant un serveur TCP itératif renvoyant les chaînes de caractères envoyées par des clients après les avoir mis en majuscule.. Le

Pour cela, faire en sorte que le serveur détermine le nombre à choisir lorsque qu’un client se connecte et qu’il n’y a à ce moment là pas de client connecté.. Tout client qui

L’idée est la suivante : un client producteur envoie au serveur une chaîne de caractères qu’il aura reçu par l’entrée standard (le clavier), le serveur stocke alors cette

Le protocole est élémentaire, le client se contente d’envoyer un mot au serveur qui lui renvoit la réponse sous la forme d’un texte constitué d’un nombre quelconque de lignes

S’il y a un tuteur de cette discipline disponible, le serveur renvoie au client l’identifiant de ce tuteur et le retire de la liste des tuteurs disponibles.. Sinon le serveur renvoie