/* tcp torture client, with a simulated delay between receives. compile with gcc tcpclient.c -o tcpclient run with ./tcpclient serverip */ #include #include #include #include #include #include #include #include #include #include #include #define RPORT 30000 #define BUFSIZE 1024 // first command-line arg is ip address of server int main(int argc, char**argv) { int cfd; // client file descriptors int result; int x, i; unsigned char buffer[BUFSIZE]; // 1K buffer struct sockaddr_in saddr; saddr.sin_family = AF_INET; saddr.sin_addr.s_addr = inet_addr(argv[1]); saddr.sin_port = htons(RPORT); cfd = socket(AF_INET,SOCK_STREAM,0); connect(cfd,(struct sockaddr *)&saddr,sizeof(saddr)); printf(" ****** connection established\n"); for(i=0;i<10000000;i++) { result = read(cfd,buffer,BUFSIZE); // result == bytes read // extract and print sequence number inside first 4 bytes of buffer: x = *((int*)buffer); printf("packet %d received\n",x); // intensional delay to throttle server for(x=0;x<100000000;x++) { x++; x--; } } // for i close(cfd); exit(0); } // main