Advertisement
Guest User

Untitled

a guest
Apr 24th, 2018
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. #include <sys/types.h>
  2. #include <sys/socket.h>
  3. #include <netinet/in.h>
  4. #include <stdlib.h>
  5. #include <unistd.h>
  6. #include <fcntl.h>
  7. #include <ctype.h>
  8. #include <netinet/in.h>
  9. #include <netdb.h>
  10. #include <string.h>
  11. #include <stdio.h>
  12.  
  13. #define SRV_PORT 1234
  14. #define CLNT_PORT 1235
  15. #define NAMES 1024
  16. #define FILE_SIZE 3000
  17. int main(int argc, char * argv[])
  18. {
  19. unsigned char srv_host [NAMES];
  20. unsigned char source [NAMES];
  21. unsigned char dest [NAMES];
  22. unsigned char message[FILE_SIZE];
  23. strcpy(srv_host, strtok(argv[1], "@"));
  24. strcpy (source, strtok(NULL, "\0"));
  25. strcpy(dest, argv[2]);
  26. int s;
  27. int from_len;
  28. struct hostent *hp;
  29. struct sockaddr_in clnt_sin, srv_sin;
  30. if((s = socket (AF_INET, SOCK_STREAM, 0)) < 0)
  31. {
  32. perror("socket");
  33. exit(1);
  34. }
  35. memset ((char *)&clnt_sin, '\0', sizeof(clnt_sin));
  36. clnt_sin.sin_family = AF_INET;
  37. clnt_sin.sin_addr.s_addr = INADDR_ANY;
  38. clnt_sin.sin_port = CLNT_PORT;
  39. bind (s, (struct sockaddr *)&clnt_sin, sizeof(clnt_sin));
  40. memset ((char *)&srv_sin, '\0', sizeof(srv_sin));
  41. hp = gethostbyname (srv_host);
  42. srv_sin.sin_family = AF_INET;
  43. memcpy ((char *)&srv_sin.sin_addr,hp->h_addr,hp->h_length);
  44. srv_sin.sin_port = SRV_PORT;
  45. if(connect (s, &srv_sin, sizeof(srv_sin)) < 0)
  46. {
  47. perror("connect");
  48. exit(2);
  49. }
  50.  
  51. send(s, source, NAMES, 0);
  52. FILE * file;
  53. strcat(dest, "/temp");
  54. if((file = fopen(strcat(dest, ".tar"), "w+")) == NULL){
  55. perror("file");
  56. exit(3);
  57. }
  58. while((from_len = recv (s, message, 1, 0)) != 0){
  59. fwrite(message, 1, 1, file);
  60. }
  61. fclose(file);
  62. char tar[] = "tar -xf ";
  63. strcat(tar, dest);
  64. strcat(tar, " -C ");
  65. strcat(tar, argv[2]);
  66. system(tar);
  67. close (s);
  68. char rm[] = "rm ";
  69. system(strcat(rm, dest));
  70. exit (0);
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement