gethostbyname miert nem megy?

Hali!

Probalkozom socket programozassal, de csobe jutottam, mert a gethostbyname() fgv. nem akar mukodni. Ezt a peldaprogit itt talaltam valahol, de meg ez se megy pedig tok logikus:


#include <netdb.h>
#include <stdio.h>

int main()
{
    struct hostent *h;
    h=gethostbyname("www.hup.hu");

    if (h)
        printf("%s\n",h->h_name);
    else
        printf("Gethostbyname failed!\n");

    return 0;
}

Megy minden fgv. amit probaltam (socket, connect, recv, send) persze ha ip-t hasznalok, de jo lenne ha lenne nevfeloldas is. Anjuta-t hasznalok, es gcc (GCC) 4.1.2 (Ubuntu 4.1.2-0ubuntu4)-t. Arra rajottem hogy a struct hostent *h; sorral van a gond, ha nem hasznalom, akkor nem mondja azt hogy: Program has been terminated receiving signal 11 (Segmentation fault). Tudna valaki segiteni?
Elso blogom, Lol :)

Hozzászólások

akárhogy néztem, nem volt benne hiba, ezért ki is próbáltam. nincs benne hiba. A hiba az ön készülékében van.

En ezt hasznalom:

unsigned long resolve_host(char *h){
   struct hostent *host;
   struct in_addr addr;

   if((addr.s_addr = inet_addr(h)) == -1){
       if((host = gethostbyname(h)) == NULL){
          return 0;
       }
       else return *(unsigned long*)host->h_addr;
   }
   else return addr.s_addr;
}

ASK Me No Questions, I'll Tell You No Lies