• Aucun résultat trouvé

PR6 – Programmation réseaux TP n

N/A
N/A
Protected

Academic year: 2022

Partager "PR6 – Programmation réseaux TP n"

Copied!
2
0
0

Texte intégral

(1)

L3 Informatique Année 2014-2015

PR6 – Programmation réseaux

TP n

o

7 : Programmation réseaux en C (suite)

I) IPv6

Exercice 1 :

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

II) Encore un service

Exercice 2 : 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).

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.

III) Votre propre programme dictionnaire

Exercice 3 : 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. Sidictne 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 plusieurs connexions simultanées. Pour cela, on vous demande de programmer cela d’abord en créant de nouveaux processus avecfork(), 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) { 1

(2)

L3 Informatique Année 2014-2015

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");

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);

}

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

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

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