#include #include #include #include #include #include "readline.h" #include #include /* defisci la stringa da inviare */ char message[80];// = "PROVA DI COLLEGAMENTO!!!\n"; /* client1 nomeserver numero di porta */ main( int argc, char **argv ) { int sk; struct sockaddr_in skaddr; struct hostent *hp; char buf[200]; if (argc!=4) { printf("Usage: client \n"); exit(0); } strcpy(message,argv[1]); /* crea un socket IP protocol family (PF_INET) TCP protocol (SOCK_STREAM) */ if ((sk = socket( PF_INET, SOCK_STREAM, 0 )) < 0) { printf("Problem creating socket\n"); exit(1); } /* riempie la struttura degli indirizzi L'address family e' IP (AF_INET) L'indirizzo IP del server e' trovato chiamando gethostbyname con il nome del server */ skaddr.sin_family = AF_INET; if ((hp = gethostbyname(argv[1]))==0) { printf("Invalid or unknown host\n"); exit(1); } memcpy( &skaddr.sin_addr.s_addr, hp->h_addr, hp->h_length); skaddr.sin_port = htons(atoi(argv[2])); /* connessione con il server */ if (connect(sk,(struct sockaddr *) &skaddr,sizeof(skaddr)) < 0 ) { printf("Problem connecting socket\n"); exit(1); } /* manda una stringa e aspetta la risposta */ writeline(sk,message); readline(sk,buf,200); printf("%s\n",buf); }