• Aucun résultat trouvé

1ClientsenC TPn 6Programmationr´eseauenC 2ServeurenC Universit´eParisDiderot–Paris7Programmationr´eseauL3InformatiqueAnn´ee2013-2014,2 semestre

N/A
N/A
Protected

Academic year: 2022

Partager "1ClientsenC TPn 6Programmationr´eseauenC 2ServeurenC Universit´eParisDiderot–Paris7Programmationr´eseauL3InformatiqueAnn´ee2013-2014,2 semestre"

Copied!
1
0
0

Texte intégral

(1)

Universit´ e Paris Diderot – Paris 7 Programmation r´ eseau L3 Informatique Ann´ ee 2013-2014, 2

`eme

semestre

TP n

6

Programmation r´ eseau en C

En C, tout est de bas-niveau, c’est ` a dire que contrairement au java beacoup de choses sont ` a faire “` a la main”, et il sera important d’avoir l’API C bien en tˆete, si n´ecessaire, une documentation est disponible sur la page du cours.

Voici un petit rappel.

Les prototypes des fonctions suppl´ementaires n´ecessaires se trouvent dans les fichiers en-tˆetes suivants.

#include <sys/socket.h>

#include <netinet/in.h>

#include <netdb.h>

#include <arpa/inet.h>

Les fonctions principales sont :

int socket(int domaine, int type, int protocole);

int bind(int socket, const struct sockaddr *adresse, socklen_t longueur);

int listen(int socket, int attente);

int accept(int socket, struct sockaddr *adresse, socklen_t *longueur);

int connect(int socket, const struct sockaddr *adresse, socklen_t longueur);

int shutdown(int socket, int how);

int closesocket(int socket);

ssize_t send(int socket,const void *tampon, size_t longueur,int options); ou sendto ssize_t recv(int socket,void *tampon, size_t longueur,int options); ou recvfrom struct hostent *gethostbyname(const char *name); int h_errno;

int getpeername(int socket, struct sockaddr *name, int *namelen);

1 Clients en C

Exercice 1 [Un client TCP pour daytime]

Ecrivez un programme C qui se connecte en TCP au service ´ daytime sur lucien en utilisant des sockets.

2 Serveur en C

Exercice 2 [Un serveur pour daytime]

Faites un serveur TCP qui simule le service daytime.

Remarque :

Dans une prochain TD vous verrez comment faire un serveur parall´elis´e en C ` a l’aide des processus (fork). Ici le serveur fermera la connexion ` a chaque r´eponse.

Exercice 3 [Un serveur pour daytime]

Ecrire un serveur et un client UDP simulant le service daytime. ´

1

Références

Documents relatifs

GtkWidget* gtk_label_new(const gchar* str); crée un objet GtkLabel de libellé str void gtk_label_set_label(GtkLabel* label, const gchar* str); affecte le libellé str au label

int rio_add_outb_message (struct rio_mport * mport , struct rio_dev * rdev , int mbox , void * buffer, size_t

L’id´ee est la suivante : un client producteur envoie au serveur une chaˆıne de caract`eres qu’il aura re¸cu par l’entr´ee standard (le clavier), le serveur stocke alors

Lorsqu’il d´etermine que c’est n´ecessaire, le client SNTP envoie au serveur une requˆete sous forme d’un paquet UDP qui contient la date ` a laquelle ce message est transmis..

int bind(int socket, const struct sockaddr *adresse, socklen_t longueur);. int listen(int socket,

5. Client SMTP : Envoi de la commande DATA pour indiquer que le client va envoyer le contenu du mail. Pour marquer la fin de l’Email, le client enverra une s´equence sp´eciale

Testez votre serveur ` a l’aide d’un navigateur web et assurez-vous que votre programme est capable d’accepter plusieurs connections de suite.. Exercice 3 [Lecture

Lorsqu’il d´etermine que c’est n´ecessaire, le client SNTP envoie au serveur une requˆete sous forme d’un paquet UDP qui contient la date ` a laquelle ce message est transmis..