/* * Have you ever been to electric ladyland ? */ #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <strings.h> int main(int argc,char *argv[]) { int s; struct sockaddr_in a; s = socket(PF_INET,SOCK_STREAM,0); if (s==-1) { fprintf(stderr,"socket problem\n"); exit(EXIT_FAILURE); } bzero(&a,sizeof(a)); a.sin_family = AF_INET; a.sin_port = htons(61234); a.sin_addr.s_addr = htonl(INADDR_ANY); if (bind(s,(struct sockaddr *)&a,sizeof(a))==-1) { fprintf(stderr,"bind problem"); close(s); exit(EXIT_FAILURE); } if (listen(s,0)==-1) { fprintf(stderr,"listen problem"); close(s); exit(EXIT_FAILURE); } int d, l, i; struct sockaddr_in c; char buffer[256]; int lus; do { printf("Ready to accept... Please call me!\n"); if ((d=accept(s,(struct sockaddr *)&c,&l))==-1) { fprintf(stderr,"accept problem"); close(s); exit(EXIT_FAILURE); } shutdown(s,SHUT_WR); while ((lus=read(d,buffer,256))>0) { for (i=0; i<lus; i++) printf("%2x(%c) ",buffer[i],buffer[i]); printf("\n"); } sleep(10); // I'm tired, rest! now! close(d); } while(lus==0); close(s); exit(EXIT_SUCCESS); }