Advertisement
Guest User

Untitled

a guest
Nov 26th, 2015
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.26 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <sys/socket.h>
  4. #include <netinet/in.h>
  5. #include <string.h>
  6. #include <arpa/inet.h>
  7. #include <time.h>
  8.  
  9. int main(int argc, char ** argv){
  10. int sock;
  11. char buffer[1024];
  12. struct sockaddr_in addr;
  13. socklen_t addr_size;
  14.  
  15. sock = socket(PF_INET, SOCK_STREAM, 0);
  16.  
  17. addr.sin_family = AF_INET;
  18. addr.sin_port = htons(8500);
  19. addr.sin_addr.s_addr = inet_addr("127.0.0.1");
  20. memset(addr.sin_zero, '\0', sizeof addr.sin_zero);
  21.  
  22. addr_size = sizeof addr;
  23. if (connect(sock, (struct sockaddr *) &addr, addr_size) < 0) {
  24. printf("connect error \n");
  25. }
  26.  
  27.  
  28. int i = 0;
  29. int n = atoi(argv[1]);
  30. struct timespec tstart={0,0}, tend={0,0};
  31.  
  32. clock_gettime(CLOCK_MONOTONIC, &tstart);
  33.  
  34. for (i = 0; i < n; i++) {
  35. if (send(sock,buffer,1024,0) < 1024) {
  36. printf("Send error\n");
  37. exit(1);
  38. }
  39.  
  40. int cnt = 0;
  41. while (cnt < 1024) {
  42. int ret = recv(sock, buffer+cnt, 1024-cnt, 0);
  43. if (ret < 0) {
  44. printf("recv error\n");
  45. exit(1);
  46. }
  47. cnt += ret;
  48. }
  49. }
  50.  
  51. clock_gettime(CLOCK_MONOTONIC, &tend);
  52.  
  53. printf("%d request-response of 1024 took %.5f seconds\n", n,
  54. ((double)tend.tv_sec + 1.0e-9*tend.tv_nsec) -
  55. ((double)tstart.tv_sec + 1.0e-9*tstart.tv_nsec));
  56. return 0;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement