01.#include <stdio.h>
02.#include <string.h>
03.#include <winsock.h>
04.#include <stdlib.h>
05.
06.void DownLoad(char *url){
07. WSADATA WsaData;
08. SOCKET socketfd;
09. SOCKADDR_IN addr;
10. HOSTENT *pURL;
11. int i=0;
12. char myurl[BUFSIZ];
13. char *pHost =0,* pGet =0;
14. char host[BUFSIZ],GET[BUFSIZ];
15. char Header[BUFSIZ];
16. FILE * pf;
17.
18. static char text[BUFSIZ];
19.
20. if (WSAStartup(MAKEWORD(2,2),&WsaData))
21. {
22. printf("The socket failed");
23. return;
24. }
25. strcpy(myurl,url);
26.
27. for (i=0,pHost= myurl;*pHost!='/'&&*pHost!='/0';pHost++,i++){
28. host[i] = *pHost;
29. }
30. host[i]='/0';
31. strcpy(GET,pHost);
32. strnset(Header,'/0',BUFSIZ);
33.
34.
35. socketfd = socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);
36. pURL = gethostbyname(host);
37.
38. addr.sin_addr.s_addr = *((unsigned long *)pURL->h_addr);
39. addr.sin_family = AF_INET;
40. addr.sin_port = htons(80);
41.
42.
43.
44. strcat(Header,"GET / ");
45. strcat(Header,GET);
46. strcat(Header,"HTTP/1.1/r/n");
47. strcat(Header,"Accept: */*/r/n");
48. strcat(Header,"Accept-Language: zh-cn/r/n");
49. strcat(Header,"User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; InfoPath.2)/r/n");
50. //strcat(Header,"Accept-Encoding: gzip, deflate/r/n");
51. strcat(Header,"Host: ");
52. strcat(Header,host);
53. strcat(Header,"/r/nConnection: Keep-Alive/r/n");
54.
55. strcat(Header,"/r/n/r/n");
56.
57. connect(socketfd,(SOCKADDR *)&addr,sizeof(addr));
58. send(socketfd,Header,strlen(Header),0);
59. printf("%s",Header);
60. pf = fopen("1.txt","w");
61. while(recv(socketfd,text,BUFSIZ,0)>0){
62. printf("%s",text);
63. fputs(text,pf);
64. strnset(text,'/0',BUFSIZ);
65. }
66. fclose(pf);
67. closesocket(socketfd);
68. WSACleanup();
69.
70.
71.}
72.int main(){
73. char a[256];
74. printf("http://");
75. scanf("%s",a);
76. DownLoad(a);
77.}