[C/C++] Problem mit Namensauflösung

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von meckes, 10. Februar 2008 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 10. Februar 2008
    Problem mit Namensauflösung

    Hi Coder ;

    ich probier z.Z. so n bisschen mit Sockets rum. Klappt an sich eingentlich ganz gut, nur jetzt bin ich auf ein Problem gestoßen bei dem ich net weiter weiß.
    Ich kann mich mit meinem Socket zu einem Server verbinden, allerdings nur wenn ich die IP angebe, denn die namensauflösung mit gethostbyname() funktioniert nicht.

    Ich habs schonmal im VisualStudio 2005 versucht (allerdings auf nem anderen Rechner) da hat es wunderbar geklappt. Hier verwende ich den g++ Compiler auf WinXP SP3.
    Hier der Code aufden es ankommen dürfte:

    Code:
    int sock::connectToServer(string serverName, int port){
     char IP[20];
     
     cout << "Hostnamen auflösen: " << serverName <<"\n";
    
     hostent *dns = gethostbyname(serverName.c_str());
    
     
     sprintf(IP, "%u.%u.%u.%u",
     (unsigned char) dns->h_addr_list[0][0], (unsigned char) dns->h_addr_list[0][1],
     (unsigned char) dns->h_addr_list[0][2], (unsigned char) dns->h_addr_list[0][3]);
     
    
     return realConnect(IP, port);
    }
    Das Problem ist, immer wenn er gerade soweit wäre um die stelle mit "dns->h_addr_list[0][1]" u.s.w. auszuführen bekomm ich von Windows so nen fehler: blabla.exe hat ein Problem festgestellt und muss beendet werden ...
    Ich hab absolut keine Ahnung woran des liegt Weiß es einer von euch?


    //EDIT: OK Problem gelöst!! Ich hab vergessen den WSAStartup() aufzurufen darum war der *dns pointer ein NULL-Pointer .... dann kanns ja net gehen!!

    Dann hat sich der Thread damit erledigt ...

    lg
    meckes
     
  2. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.