Test programma


/* Dit programmaatje zet een tcp verbinding op met de echo poort van de ntp0, */ /* dus alle karakters die je na het opstarten van dit proggie intikt worden door */ /* ntp0 ge-echo'd en dit proggie leest dit weer van de tcp connectie uit */ /*------------------------------------------------------------------------------ */ /* Doel: Test programmaatje die een tcp sock opent, met read en */ /* write kan dan naar de socket gelezen of geschreven worden. */ #include stdio.h> #include sys/types.h> #include sys/socket.h> #include netinet/in.h> #include arpa/inet.h> #define TCP_POORT 7 #define HOST_ADDRES "190.22.221.1" #define MAXLINE 512 void main () { int sockfd; struct sockaddr_in serv_addr; bzero ((char *) &serv_addr, sizeof(serv_addr)); serv_addr.sin_family=AF_INET; serv_addr.sin_addr.s_addr=inet_addr (HOST_ADDRES); serv_addr.sin_port=htons(TCP_POORT); if ((sockfd=socket(AF_INET,SOCK_STREAM,0))<0) printf("client:can't open socket"); if (connect(sockfd,(struct sockaddr *) &serv_addr,sizeof(serv_addr))<0) printf("client:can't connect to server"); ioroutine (stdin,sockfd); close (sockfd); exit(0); } ioroutine (karakterreeks,sockfd) register FILE *karakterreeks; register int sockfd; { int lengte; char zendlijn[MAXLINE], ontvlijn[MAXLINE]; while (fgets(zendlijn,MAXLINE,karakterreeks) !=NULL) { lengte=strlen (zendlijn); if (schrijfchars(sockfd,zendlijn,lengte) != lengte) printf("Kan niet schrijven naar socket!!"); lengte=leeslijn(sockfd,ontvlijn,MAXLINE); if (lengte < 0) printf("Kan niet lezen van socket!!"); ontvlijn[lengte]=0; fputs(ontvlijn,stdout); } if (ferror(karakterreeks)) printf("kan niet lezen van karakterreeks file"); } int leeslijn (fd,ptr,maxlen) register int fd; register char *ptr; register int maxlen; { int lengte,rc; char buffer; for (lengte=1;lengte0) { n_geschreven=write(fd,ptr,n_over); if (n_geschreven <=0) return(n_geschreven); /* ERROR!!!!!! */ n_over -=n_geschreven; /* verlaag nleft */ ptr +=n_geschreven; /* schuif pointer omhoog */ } return (nbytes-n_over); }




Terug
Terug naar Index