Chinaunix首页 | 论坛 | 博客
  • 博客访问: 488926
  • 博文数量: 138
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 716
  • 用 户 组: 普通用户
  • 注册时间: 2015-03-03 21:48
文章分类

全部博文(138)

文章存档

2019年(1)

2017年(5)

2016年(99)

2015年(33)

我的朋友

分类: C/C++

2016-01-06 08:54:16

转至
http://blog.csdn.net/aofengdaxia/article/details/5984431

点击(此处)折叠或打开

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <winsock.h>
  4. #include <stdlib.h>

  5. void DownLoad(char *url){
  6.     WSADATA WsaData;
  7.     SOCKET socketfd;
  8.     SOCKADDR_IN addr;
  9.     HOSTENT *pURL;
  10.     int i=0;
  11.     char myurl[BUFSIZ];
  12.     char *pHost =0,* pGet =0;
  13.     char host[BUFSIZ],GET[BUFSIZ];
  14.     char Header[BUFSIZ];
  15.     FILE * pf;

  16.     static char text[BUFSIZ];

  17.     if (WSAStartup(MAKEWORD(2,2),&WsaData))
  18.     {
  19.         printf("The socket failed");
  20.         return;
  21.     }
  22.     strcpy(myurl,url);

  23.     for (i=0,pHost= myurl;*pHost!='/'&&*pHost!='/0';pHost++,i++){
  24.         host[i] = *pHost;
  25.     }
  26.     host[i]='/0';
  27.     strcpy(GET,pHost);
  28.     strnset(Header,'/0',BUFSIZ);


  29.     socketfd = socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);
  30.     pURL = gethostbyname(host);

  31.     addr.sin_addr.s_addr = *((unsigned long *)pURL->h_addr);
  32.     addr.sin_family = AF_INET;
  33.     addr.sin_port = htons(80);

  34.     

  35.     strcat(Header,"GET / ");
  36.     strcat(Header,GET);
  37.     strcat(Header,"HTTP/1.1/r/n");
  38.     strcat(Header,"Accept: */*/r/n");
  39.     strcat(Header,"Accept-Language: zh-cn/r/n");
  40.     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");
  41.     //strcat(Header,"Accept-Encoding: gzip, deflate/r/n");
  42.     strcat(Header,"Host: ");
  43.     strcat(Header,host);
  44.     strcat(Header,"/r/nConnection: Keep-Alive/r/n");
  45.     
  46.     strcat(Header,"/r/n/r/n");
  47.     
  48.     connect(socketfd,(SOCKADDR *)&addr,sizeof(addr));
  49.     send(socketfd,Header,strlen(Header),0);
  50.     printf("%s",Header);
  51.     pf = fopen("1.txt","w");
  52.     while(recv(socketfd,text,BUFSIZ,0)>0){
  53.         printf("%s",text);
  54.         fputs(text,pf);
  55.         strnset(text,'/0',BUFSIZ);
  56.     }
  57.     fclose(pf);
  58.     closesocket(socketfd);
  59.     WSACleanup();

  60.     
  61. }
  62. int main(){
  63.     char a[256];
  64.     printf("http://");
  65.     scanf("%s",a);
  66.     DownLoad(a);
  67. }

阅读(980) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~