Mit Google verbinden



  • .. Ich weis echt nimmer weiter! Habe mich schon durch 5 Tutorials gelesen und alles durchprobiert.. Dachte Ihr hättet vllt eine Idee wie das funktionieren könnte. Aber wenn ihr nur so unnötige Sprüche auf Lager habt anstatt zu sagen was ihr noch an Infos braucht, dann hat das wohl kein Sinn -.-


  • Mod

    Killur schrieb:

    Aber wenn ihr nur so unnötige Sprüche auf Lager habt anstatt zu sagen was ihr noch an Infos braucht, dann hat das wohl kein Sinn -.-

    Wozu sollten wir dir das noch sagen? Das steht schließlich nur in der Signatur von fast jedem Moderator, steht als "wichtig" markiert ganz oben in der Threadliste, wird in jedem 5. Thread nochmal explizit gesagt und es sollte sowieso eigentlich selbstverständlich sein, dass "geht nicht" keine brauchbare Fehlerbeschreibung ist. Ebenso wie "alles durchprobiert" und "5 Tutorials". Das sind Blenderbegriffe für politische Debatten. Versetz dich mal in jemanden, der nicht du bist und sag, ob du bei diesen Floskeln irgendeine Ahnung hast, was derjenige tatsächlich getan hat, der so etwas schreibt oder was sein Problem ist.



  • Geh mit dem Debugger durch. Der von MSVC ist super.



  • Nimm mal:

    hostent* host = gethostbyname("www.google.de");
    


  • Weil Dus bist:

    #include <winsock2.h>
    #include <ws2tcpip.h>
    #include <stdio.h>
    #include <Windows.h>
    #include <iostream>
    #include <iphlpapi.h>
    #include <string>
    
    #pragma comment(lib, "Ws2_32.lib")
    
    using namespace std;
    int startWinsock(void);
    
    int main()
    {
    
      int rc;
      rc=startWinsock();
    
      SOCKADDR_IN addr;
      SOCKET s=socket(AF_INET,SOCK_STREAM,0);
      string adress("http://www.google.de");
    
      if(rc!=0)
      {
    
        cout << "Error! Starting Winsock Failed. Error-Code: "<< rc << endl;
        getchar();
    
        return 1;
    
      }
    
      if(s==INVALID_SOCKET)
      {
          cout << "Creating Socket Failed!" << endl;
          getchar();
          return 1;
      }
    
        memset(&addr,0,sizeof(SOCKADDR_IN));
    
        addr.sin_family=AF_INET;
    
        addr.sin_port=htons(80);
    
        hostent* host = gethostbyname("www.google.de");
    
        addr.sin_addr = *reinterpret_cast<in_addr*>(host->h_addr);
    
        rc=connect(s,(SOCKADDR*)&addr,sizeof(SOCKADDR));
    
        if(rc==SOCKET_ERROR)
    
        {
    
        cout << "Connecting failed! Error-Code: " << WSAGetLastError() << endl;
        getchar();
        return 1;
    
        }
    
        cout << "Verbindung hergestellt!" << endl;
    
        char bufferSend[256] = "GET / HTTP/1.0\r\n\r\n";
        char bufferRecv[1024];
        int sent = send(s, bufferSend, lstrlen(bufferSend), 0);
    
        cout << "Gesendet: " << sent << '\n';
    
        rc=recv(s, bufferRecv, 1024, 0);
    
        if(rc==0)
        {
            cout << "Error!" << endl;
            getchar();
            getchar();
            exit(1);
        }
        if(rc==SOCKET_ERROR)
        {
          cout << "Fehler! - " << WSAGetLastError() << endl;
          getchar();
          getchar();
          exit(1);
        }
    
        cout << bufferRecv << endl;
        getchar();
        getchar();
    
      return 0;
    
    }
    
    int startWinsock(void)
    
    {
    
      WSADATA wsa;
    
      return WSAStartup(MAKEWORD(2,0),&wsa);
    
    }
    


  • Was kann man denn da genauer erklären ?! Ich weis in welcher zeile das Problem entsteht und die Fehlermeldung.

    @Belli: Geht auch nicht.



  • Bei mir geht das!



  • Bei mir nicht..
    Mit dem Code oben geht es bei dir?



  • Ohne error checking, sollte aber funktionieren:

    hostent *he;
    he = gethostbyname( "www.google.de" );
    sockaddr_in server;
    server.sin_addr.s_addr = *( ( unsigned long* ) he->h_addr );
    


  • Killur schrieb:

    Was kann man denn da genauer erklären ?!

    Du hast einiges geändert, und dann "geht es auch nicht". Dann müssen wir hier anfangen zu raten, ob denn nun der gleiche Fehler weiterbesteht oder ein völlig anderer. Zumindest diese Information könntest du uns zukommen lassen. 🙂


Anmelden zum Antworten