TP 01 Sid
TP 01 Sid
TP 01 Sid
Rapport de TP 01 : envoi
d’un message entre
deux
machine(client/serveur)
PC
Le code c de server :
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <netdb.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <errno.h>
#include <string.h>
#define TAILLEBUF 20
// identifiant du client
socklen_t lg;
int sock;
// buffer de réception
char buffer[TAILLEBUF];
// chaine reçue
char *chaine;
int nb_octets;
if (port<2)
exit(0);
// création de la socket
exit(1);
addr_local.sin_family = AF_INET;
addr_local.sin_port = htons(atoi(tabp[1]));
addr_local.sin_addr.s_addr=htonl(INADDR_ANY);
sizeof(addr_local))== -1 ) {
perror("erreur bind");
exit(1);
lg = sizeof(struct sockaddr_in);
if (nb_octets == -1) {
exit(1);
if (nb_octets == -1) {
exit(1);
// fermeture la socket
close(sock);
Le code c de client :
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <netdb.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <errno.h>
#include <string.h>
#define TAILLEBUF 20
socklen_t lg;
int sock;
// chaine à envoyer
// buffer de réception
char buffer[TAILLEBUF];
char *reponse;
int nb_octets;
if (port != 3)
exit(1);
if (sock == -1) {
exit(1);
}
// récupération identifiant du serveur
serveur_host = gethostbyname(tabp[1]);
if (serveur_host==NULL) {
exit(1);
addr_serveur.sin_family = AF_INET;
addr_serveur.sin_port = htons(atoi(tabp[2]));
memcpy(&addr_serveur.sin_addr.s_addr,
lg = sizeof(struct sockaddr_in);
if (nb_octets == -1) {
exit(1); }
if (nb_octets == -1) {
exit(1); }
// on ferme la socket
close(sock);
4/
5/