Advertisement
Briotar

Untitled

Apr 29th, 2021
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <sys/types.h>
  4. #include <sys/socket.h>
  5. #include <netinet/in.h>
  6. #include <netdb.h>
  7. #include <memory.h>
  8. #include <unistd.h>
  9. #include <string.h>
  10.  
  11. #define SRV_HOST "localhost"
  12. #define SRV_PORT 13002 //порт сервера
  13.  
  14. int main(int argc, char** argv)
  15. {
  16. int s;
  17. int in_len;
  18. char command[16];
  19. int len_command;
  20. char result[128];
  21. char test[128];
  22. int CLNT_PORT;
  23. struct hostent *hp;
  24. struct sockaddr_in clnt_sin, srv_sin;
  25.  
  26. if(argc == 2)
  27. {
  28. CLNT_PORT = atoi(argv[1]);
  29. }
  30. /*int i=0;
  31. while(*(test+i-1) != '\n')
  32. {
  33. scanf("%c",test+i);
  34. i++;
  35. }
  36. len_command = strlen(test);
  37. */
  38. //sscanf(argv[1], "%s", command);
  39. //len_command = strlen(command);
  40.  
  41. s = socket(AF_INET, SOCK_STREAM, 0);
  42. memset ((char *)&clnt_sin, '\0', sizeof(clnt_sin));
  43. clnt_sin.sin_family = AF_INET;
  44. clnt_sin.sin_addr.s_addr = INADDR_ANY;
  45. clnt_sin.sin_port = CLNT_PORT;
  46. bind(s, (struct sockaddr *)&clnt_sin, sizeof(clnt_sin));
  47.  
  48. memset((char *)&srv_sin, '\0', sizeof(srv_sin));
  49. hp = gethostbyname(SRV_HOST);
  50. srv_sin.sin_family =AF_INET;
  51. memcpy ((char *)&srv_sin.sin_addr, hp->h_addr,hp->h_length);
  52. srv_sin.sin_port = SRV_PORT;
  53. int k = connect(s, (struct sockaddr *)&srv_sin, sizeof(srv_sin));
  54. printf("%d\n",k);
  55. //printf("Результаты выполнения команды: \n");
  56.  
  57. int i=0;
  58. while(*(test+i-1) != '\n')
  59. {
  60. scanf("%c",test+i);
  61. i++;
  62. }
  63. len_command = strlen(test);
  64.  
  65. send (s, test, len_command, 0);
  66. recv(s, result, 128,0);
  67. if (result[0] == '\0')
  68. printf("Введена неверная команда \n");
  69. else
  70. printf("Результаты выполнения команды: \n%s",result);
  71. close(s);
  72. exit(0);
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement