2011-12-07 12 views
2

を取得:だから私はウェブサイトからソースを取得し、このソース持っているウェブサイトのソース

WSADATA wsaData; 

if (WSAStartup(MAKEWORD(2,2), &wsaData) != 0) { 
      cout << "WSAStartup failed.\n"; 
    system("pause"); 
      return 1; 
} 

    SOCKET Socket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); 

    struct hostent *host; 
    host = gethostbyname("www.site.com"); 

    SOCKADDR_IN SockAddr; 
    SockAddr.sin_port=htons(80); 
    SockAddr.sin_family=AF_INET; 
    SockAddr.sin_addr.s_addr = *((unsigned long*)host->h_addr); 

    cout << "Connecting...\n"; 
    if(connect(Socket,(SOCKADDR*)(&SockAddr),sizeof(SockAddr)) != 0){ 
      cout << "Could not connect"; 
      system("pause"); 
      return 1; 
    } 
    cout << "Connected.\n"; 

    send(Socket,"GET/HTTP/1.1\r\nHost: www.site.com/auth.php\r\nConnection: close\r\n\r\n", strlen("GET/HTTP/1.1\r\nHost: www.site.com/auth.php\r\nConnection: close\r\n\r\n"),0); 
    char buffer[10000]; 

    int nDataLength; 
    while ((nDataLength = recv(Socket,buffer,10000,0)) > 0){    
      int i = 0; 
      for(; i != nDataLength; ++i) 
        cout << buffer[i]; 
    } 

    closesocket(Socket); 
    WSACleanup(); 

問題があるが、そのはauth.phpしてナビゲートしていません。また、どのように私は送ってしまうようVARSをGET名前はbleh

+0

あなたはソースを取得しません。ウェブサーバーはそれを無料で提供しません。あなたが得るのは_php_のようにPHPハイパーテキストの前処理されたものだけです。 –

答えて

3

あなたが送っている=:?

GET/HTTP/1.1 
Host: www.site.com/auth.php 
Connection: close 

を代わりに、それはあなたが望むように聞こえる:

GET /auth.php HTTP/1.1 
Host: www.site.com 
Connection: close 

注意をHost:ヘッダがすべきことドメイン名はで、URLではなくのみです。

関連する問題