V I S U A L I Z Z A D I S C U S S I O N E |
Capitan |
Inserito il - 19/01/2011 : 20:41:29 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 |
3 U L T I M E R I S P O S T E (in alto le più recenti) |
alitoDV |
Inserito il - 31/01/2011 : 10:12:37 #ifdef WIN // Initialize Winsock WSADATA wsaData; if (WSAStartup(MAKEWORD(2,2), &wsaData) != 0) { printf("Error at WSAStartup()\n"); return 0; { #endif
cioè questa parte di codice l'0avevi inserita dopo aver fatto la gethost...()?
Cmq scusa se nn ti ho risposto prima ma nn stavo leggendo laureateci da un po'... |
Capitan |
Inserito il - 20/01/2011 : 18:20:09 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 |
Capitan |
Inserito il - 20/01/2011 : 17:57:21 Aldo chiedo il tuo aiuto... A te la gethostbyname funzionava sempre? Perchè a me fallisce in ogni caso. |