/* COISERVER - SERVER CONNESSION ORIENTED SU INTERNET PORT =1234*/ #include #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,j, s, ns; struct sockaddr_in myname, fromname; char str1[200]; fd_set ready; struct timeval wait; 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, &myname, sizeof myname) < 0) { perror("client: bind"); exit(1); } if (listen(s, 5) < 0) { perror("client: listen"); exit(1); } j =0; while(1){ FD_ZERO(&ready); FD_SET(s,&ready); wait.tv_sec =1; if(select(s+1,&ready, (fd_set *)0,(fd_set *)0, &wait)<0){ perror("select"); continue; } if (FD_ISSET(s, &ready)) { ns = accept(s, &fromname, &fromlen); if (ns == -1) perror("accept"); else { 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); } } } /* qui si puo` fare altro */ j++; printf("%d\n",j); }; close(s); exit(0); }