/* socket Internet de type STREAM - COTE CLIENT */ /* gcc client_tcp.c -o client_tcp */ #include #include #include #include #include main(int argc, char * argv[]) { int i; int sock, lg_max, lg_rec; struct sockaddr_in nom_srv, nom; struct hostent *hp; char message[100]; /* construction du socket local */ if ((sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) { printf ("erreur creation socket\n"); exit (1); } /* construction du nom externe du socket distant */ if ((hp = gethostbyname("SUN1")) == NULL) { printf ("erreur gethostbyname\n"); exit (1); } nom_srv.sin_family = AF_INET; nom_srv.sin_port = 9000; bcopy(hp->h_addr, (char *)&(nom_srv.sin_addr.s_addr), hp->h_length); /* connexion au serveur */ if (connect(sock, (struct sockaddr *)&nom_srv, sizeof(nom_srv)) == -1) { printf ("echec ouverture de connexion\n"); exit (1); } printf ("\n*** Connexion etablie ***\n\n"); /* reception des messages */ lg_max = 100; lg_rec = 0; for (i=1; i<= 5; i++) { printf ("*** Attente Message ***\n\n"); if ((lg_rec = read(sock,message,lg_max)) > 0) { printf ("taille du message recu : %d\n", lg_rec); message[lg_rec]='\0'; printf ("message recu : %s\n\n", message); } else { printf ("erreur en reception\n"); exit(1); } } /* fermeture du socket */ close(sock); }