/* COISERVER - SERVER CONNESSION ORIENTED SU INTERNET PORT =1234*/ /* Il server spedisce tre messaggi e riceve tre messaggi di lunghezza*/ /* prefissata: nel caso la lunghezza dei messaggi non sia nota e */ /* i messaggi sono in ascii conviene aprire in lettura il socket come*/ /* fosse un file */ #include #include #include #include #include #define NSTRS 3 #define MSGLEN 32 char *strs[NSTRS] = { "1a stringa dal server", "2a stringa dal server", "3a stringa dal server" }; main() { char c; int fromlen; register int i, s, ns; struct sockaddr_in myname, fromname; char str1[200]; if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0) { perror("server:socket"); exit(1); } myname.sin_family = AF_INET; myname.sin_port = htons(1234); myname.sin_addr.s_addr = INADDR_ANY; if (bind(s, (struct sockaddr *)&myname, sizeof myname) < 0) { perror("client: bind"); exit(1); } if (listen(s, 5) < 0) { perror("client: listen"); exit(1); } if ((ns = accept(s,NULL,0)) < 0) { perror("server:accept"); exit(1); } for (i=0; i< NSTRS; i++) send(ns,strs[i], MSGLEN, 0); for (i=0; i < NSTRS; i++) { fromlen = recv(ns, str1,MSGLEN,0); str1[fromlen] = '\0'; printf("%s\n",str1); } close(s); exit(0); }