Facebook Sharer
选择您要替换的背景颜色:
【农历新年】背景图片:
个性化设定
 注册  找回密码
查看: 641|回复: 0
打印 上一主题 下一主题

(求助)关于 C++ 问题请高手指教

[复制链接]

8

主题

0

好友

11

积分

初级会员

Rank: 1

跳转到指定楼层
1#
发表于 2010-11-24 03:17 PM |只看该作者 |倒序浏览
  1. #include  <io.h>
  2. #include  <stdio.h>
  3. #include  <stdlib.h>
  4. #include  <iostream>
  5. #include  <windows.h>
  6. #include  <time.h>
  7. #define FILENAME1 "C:\\start1.txt"
  8. #define FILENAME2 "C:\\start2.txt"
  9. #define URL1 "localhost/jacker1.html"
  10. #define URL2 "localhost/jacker2.html"
  11. #pragma comment(lib, "ws2_32.lib")
  12. using namespace std;
  13.           /*not optimized code version 2010/11/9*/
  14. void geturl (char *url);void geturl2 (char *url2)
  15. {
  16.         while (1)
  17.         {
  18.                 if( (_access( FILENAME1, 0 )) != -1 )
  19.           {
  20.                                 WSADATA WSAData={0};
  21.                                 SOCKET        sockfd;
  22.                                 struct sockaddr_in        addr;
  23.                                 struct hostent        *pURL;
  24.                                 char        myurl[BUFSIZ];
  25.                                 char        *pHost = 0, *pGET = 0;
  26.                                 char        host[BUFSIZ], GET[BUFSIZ];
  27.                                 char        header[BUFSIZ] = "";
  28.                                 static char        text[BUFSIZ];
  29.                                 int i;
  30.                                 if(WSAStartup(MAKEWORD(2,2), &WSAData))
  31.                                 {
  32.                                                 printf("WSA failed\n");
  33.                                                 return;
  34.                                 }
  35.                                 strcpy(myurl, url);
  36.                                 for (pHost = myurl; *pHost != '/' && *pHost != '\0'; ++pHost);
  37.                                 if ( (int)(pHost - myurl) == strlen(myurl) )
  38.                                                 strcpy(GET, "/");
  39.                                 else
  40.                                                 strcpy(GET, pHost);
  41.                                 *pHost = '\0';
  42.                                 strcpy(host, myurl);
  43.                                 sockfd = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
  44.                                 pURL = gethostbyname(host);
  45.                                 addr.sin_family = AF_INET;
  46.                                 addr.sin_addr.s_addr = *((unsigned long*)pURL->h_addr);
  47.                                 addr.sin_port = htons(80);
  48.                                 strcat(header, "GET ");
  49.                                 strcat(header, GET);
  50.                                 strcat(header, " HTTP/1.1\r\n");
  51.                                 strcat(header, "HOST: ");
  52.                                 strcat(header, host);
  53.                                 strcat(header, "\r\nConnection: Close\r\n\r\n");
  54.                                 connect(sockfd,(SOCKADDR *)&addr,sizeof(addr));  
  55.                                 send(sockfd, header, strlen(header), 0);   
  56.                                 char htmlBuf[10000] = "";      
  57.                                 while ( recv(sockfd, text, BUFSIZ, 0) > 0)
  58.                                 {      
  59.                                                 strcat(htmlBuf, text);  
  60.                                                 strnset(text, '\0', BUFSIZ);
  61.                                 }
  62.                                 closesocket(sockfd);
  63.                                 WSACleanup();
  64.                                 char *pf = htmlBuf;
  65.                                 while (*pf != '\0')
  66.                                 {
  67.                                         if (*pf == '\r' && *(pf+1) == '\n' && *(pf+2) == '\r' && *(pf+3) == '\n')   
  68.                                                 break;
  69.                                         pf++;
  70.                                 }       
  71.                                 printf(pf+4);
  72.                 }
  73.                 else if( (_access( FILENAME1, 0 )) != -1 )
  74.                 {
  75.                             WSADATA WSAData={0};
  76.                                 SOCKET        sockfd;
  77.                                 struct sockaddr_in        addr;
  78.                                 struct hostent        *pURL;
  79.                                 char        myurl[BUFSIZ];
  80.                                 char        *pHost = 0, *pGET = 0;
  81.                                 char        host[BUFSIZ], GET[BUFSIZ];
  82.                                 char        header[BUFSIZ] = "";
  83.                                 static char        text[BUFSIZ];
  84.                                 int i;
  85.                                 if(WSAStartup(MAKEWORD(2,2), &WSAData))
  86.                                 {
  87.                                                 printf("WSA failed\n");
  88.                                                 return;
  89.                                 }
  90.                                 strcpy(myurl, url2);
  91.                                 for (pHost = myurl; *pHost != '/' && *pHost != '\0'; ++pHost);
  92.                                 if ( (int)(pHost - myurl) == strlen(myurl) )
  93.                                                 strcpy(GET, "/");
  94.                                 else
  95.                                                 strcpy(GET, pHost);
  96.                                 *pHost = '\0';
  97.                                 strcpy(host, myurl);
  98.                                 sockfd = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
  99.                                 pURL = gethostbyname(host);
  100.                                 addr.sin_family = AF_INET;
  101.                                 addr.sin_addr.s_addr = *((unsigned long*)pURL->h_addr);
  102.                                 addr.sin_port = htons(80);
  103.                                 strcat(header, "GET ");
  104.                                 strcat(header, GET);
  105.                                 strcat(header, " HTTP/1.1\r\n");
  106.                                 strcat(header, "HOST: ");
  107.                                 strcat(header, host);
  108.                                 strcat(header, "\r\nConnection: Close\r\n\r\n");
  109.                                 connect(sockfd,(SOCKADDR *)&addr,sizeof(addr));  
  110.                                 send(sockfd, header, strlen(header), 0);   
  111.                                 char htmlBuf[10000] = "";     
  112.                                 while ( recv(sockfd, text, BUFSIZ, 0) > 0)
  113.                                 {      
  114.                                                 strcat(htmlBuf, text);   
  115.                                                 strnset(text, '\0', BUFSIZ);
  116.                                 }
  117.                                 closesocket(sockfd);
  118.                                 WSACleanup();
  119.                                 char *pf = htmlBuf;
  120.                                 while (*pf != '\0')
  121.                                 {
  122.                                         if (*pf == '\r' && *(pf+1) == '\n' && *(pf+2) == '\r' && *(pf+3) == '\n')   
  123.                                                 break;
  124.                                         pf++;
  125.                                 }       
  126.                                 printf(pf+4);
  127.                 }       
  128. }
  129. }   
  130. int main()
  131. {      
  132.         geturl(URL1);
  133.                 geturl2(URL2);
  134.         return 0;
  135. }
复制代码
请问void geturl (char *url);void geturl2 (char *url2) 《这样写有问题吗? 我这样写后 代码就出错了 url 找不到东西 ,请问是出了什么问题?




收藏收藏0
您需要登录后才可以回帖 登录 | 注册

JBTALKS.CC |联系我们 |隐私政策 |Share

GMT+8, 2024-11-29 08:56 PM , Processed in 0.091856 second(s), 27 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

Ultra High-performance Dedicated Server powered by iCore Technology Sdn. Bhd.
Domain Registration | Web Hosting | Email Hosting | Forum Hosting | ECShop Hosting | Dedicated Server | Colocation Services
本论坛言论纯属发表者个人意见,与本论坛立场无关
Copyright © 2003-2012 JBTALKS.CC All Rights Reserved
合作联盟网站:
JBTALKS 马来西亚中文论坛 | JBTALKS我的空间 | ICORE TECHNOLOGY SDN. BHD.
回顶部