Advertisement
Guest User

Untitled

a guest
Feb 27th, 2020
317
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.93 KB | None | 0 0
  1. #define _WINSOCK_DEPRECATED_NO_WARNINGS
  2. #define _CRT_SECURE_NO_WARNINGS
  3. #include <stdlib.h>
  4. #include <stdio.h>
  5. #include <iostream>
  6. #include <string.h>
  7. #include <winsock2.h>
  8.  
  9. int main(int argc, char* argv[])
  10. {
  11. // Ellenőrzés
  12. if (argc < 5)
  13. {
  14. printf("Hasznalat: %s IP port oldal fajl\n", argv[0]);
  15. return 1;
  16. }
  17.  
  18. // Winsock inicializálás
  19. WSADATA wsd;
  20. if (WSAStartup(0x0202, &wsd) != 0)
  21. {
  22. printf("WSAStartup: %d", WSAGetLastError());
  23. return 1;
  24. }
  25.  
  26.  
  27. SOCKET s;
  28. if ((s = socket(PF_INET, SOCK_STREAM, 0)) < 0) {
  29. std::cout << "creating socket:" << WSAGetLastError();
  30. return 1;
  31. }
  32.  
  33. struct sockaddr_in addr;
  34. addr.sin_family = AF_INET; //ip4
  35. addr.sin_addr.s_addr = inet_addr(argv[1]); // ip cimet kap eloszor
  36. addr.sin_port = htons(atoi(argv[2])); //portszamot kap masodszor
  37.  
  38. if (connect(s, (struct sockaddr*) & addr, sizeof(addr)) < 0) {
  39. std::cout <<"connect:"<< WSAGetLastError();
  40. return 1;
  41. }
  42.  
  43. //3-as feladat
  44.  
  45. char request[256];
  46. int rlen = sprintf(request, "GET %s HTTP/1.0\r\n\r\n", argv[3]);
  47.  
  48. send(s, request, rlen, 0);
  49.  
  50. char recved[1024];
  51. int recvlen = recv(s, recved, sizeof(recved)-1, MSG_WAITALL );
  52. if (recved < 0)
  53. {
  54. std::cout << "recived:" << WSAGetLastError();
  55. return 1;
  56. }
  57.  
  58. recved[recvlen] = 0;
  59.  
  60. std::cout << recved;
  61.  
  62. char version[16];
  63. int status;
  64. char error[256];
  65.  
  66. if (sscanf(recved, "HTTP/%16s %d %256[^\r\n\r\n]", version, &status, error) == 3){
  67. std::cout <<"\n\n" << status << "\t" << error;
  68. }
  69.  
  70.  
  71. char* pdata;
  72. if ((pdata = strstr(recved, "\r\n\r\n")) == NULL) {
  73. std::cout << "EOF hiba";
  74. }
  75.  
  76. FILE *fp;
  77.  
  78. if ((fp = fopen(argv[4], "w")) != NULL)
  79. {
  80. fwrite(pdata + 4, 1,recvlen - (pdata - recved) - 4, fp);
  81. }
  82. else {
  83. std::cout << "fopen error";
  84. }
  85.  
  86. while (recvlen = recv(s, recved, sizeof(recved), 0) > 0) {
  87. fwrite(recved, 1, recvlen, fp);
  88. }
  89.  
  90.  
  91. fclose(fp);
  92.  
  93. closesocket(s);
  94.  
  95. WSACleanup();
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement