Il problema è evidente dall'oggetto. Ci sono particolari situazioni che possono bloccare la risoluzione del nome di un host? su Win se serve posso postare il codice... cmq credo sia corretto per due motivi 1 mi sono basato sulle dispense del prof 2 non mida alcun problema di compilazione. solo che la struct rimane sempre NULL. Ciao Grazie
RISOLTO: Questo codice che ho preso da msdn.microsoft.com da il codice di errore che si è verificato:
struct hostent *host; host = gethostbyname(nomeHost); if (host == NULL) { fprintf(stderr, "gethostbyname() failed.\n"); int dwError; dwError = WSAGetLastError(); if (dwError != 0) { if (dwError == WSAHOST_NOT_FOUND) printf("Host not found\n"); else if (dwError == WSANO_DATA) printf("No data record found\n"); else printf("Function failed with error: %ld\n", dwError);
} }
La chiamata alla funzione WSAGetLastError() restituisce il codice di errore che nel mio caso si riferiva al fatto che non avevo inizializzato la win socket, o meglio lo avevo fatto subito dopo... In ogni caso a parte l'errore banale, quel pezzettino di codice potrebbe essere utile in altri casi per capire la natura del fallimento ... Ciao