Guest User

Untitled

a guest
Dec 11th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.39 KB | None | 0 0
  1. send 10M
  2. send: 10485760
  3. read: 10485760
  4.  
  5. send 100M
  6. send: 104857600
  7. read: 29593600
  8.  
  9. #include <arpa/inet.h>
  10. #include <netinet/in.h>
  11. #include <stdio.h>
  12. #include <stdlib.h>
  13. #include <strings.h>
  14. #include <sys/socket.h>
  15. #include <unistd.h>
  16.  
  17. void test(int n) {
  18. const char* server_ip = "127.0.0.1";
  19. uint16_t server_port = 9876;
  20.  
  21. struct sockaddr_in server_addr;
  22. bzero(&server_addr, sizeof server_addr);
  23. server_addr.sin_family = AF_INET;
  24. server_addr.sin_port = htons(server_port);
  25. inet_pton(AF_INET, server_ip, &server_addr.sin_addr);
  26.  
  27. int client_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
  28. connect(client_socket, (struct sockaddr*)(&server_addr), (socklen_t)(sizeof server_addr));
  29.  
  30. char buf[1024];
  31. int send_count = 0;
  32. int read_count = 0;
  33. for (int i = 0; i != n; ++i)
  34. for (int j = 0; j != 1024; ++j) {
  35. ssize_t ret = write(client_socket, buf, sizeof(buf));
  36. if (ret == -1) {
  37. perror("error");
  38. exit(-1);
  39. }
  40. send_count += ret;
  41. }
  42.  
  43. shutdown(client_socket, SHUT_WR);
  44.  
  45. for (;;) {
  46. ssize_t ret = read(client_socket, buf, sizeof(buf) - 1);
  47. if (ret == -1) {
  48. perror("error");
  49. exit(-1);
  50. }
  51. if (ret == 0)
  52. break;
  53. read_count += ret;
  54. }
  55. printf("send: %dn", send_count);
  56. printf("read: %dn", read_count);
  57. }
  58.  
  59. int main() {
  60. printf("send 10M n");
  61. test(10);
  62. printf("nsend 100M n");
  63. test(100);
  64.  
  65. return 0;
  66. }
Add Comment
Please, Sign In to add comment