il controllo dopo gethostbyname( ) lo avevo già corretto ma nella seconda iterazione è in una zona che da' ad he NULL.
il controllo dopo gethostbyname( ) lo avevo già corretto ma nella seconda iterazione è in una zona che da' ad he NULL.
Nella volta che viene chiamato il programma esce perchè he è uguale a null, dovrebbe essere diverso da null poer accedere un'altra volta ai due programmi nei case.
Mi scuso per il tono sbagliato con cui ti scrivo ma l'errore di gethostbyname ( ) l'avevo corretto.
Nel programma ho corretto nella funzione if all'inizio:
codice:if in=='a' {he = gethostbyname(host); //getting host port=port1; printf("1\r\n"); if (he == NULL) { printf("\r\n"); printf("host not found.\n"); system("PAUSE"); return 1; } else { printf("\r\n"); printf("host found.\n"); } else {he = gethostbyname(host1); port=port1; printf("2\r\n"); if (he == NULL) { printf("\r\n"); printf("host not found.\n"); system("PAUSE"); return 1; } else { printf("\r\n"); printf("host found.\n"); } } struct sockaddr_in sin; sin.sin_family = AF_INET; /*internet address family*/ sin.sin_addr.s_addr = *((unsigned long*) he->h_addr); /*indirizzo del server*/ sin.sin_port = htons(port);
E ti dà ancora errore? Dove?
No MP tecnici (non rispondo nemmeno!), usa il forum.
Quando viene scelta una delle possibilità he è uguale a null non dovrebbe esserlo.
Nel secondo richiamo he è null e va in "host not found".
Controlla cosa contiene host (e host1) quando he diventa null
No MP tecnici (non rispondo nemmeno!), usa il forum.
le variabili host host1 sono costanti usando il debug su he non riesco a rilevare il valore di he, ho usato nuova osservazione.
Prova ad ottenere il codice d'errore subito dopo la gethostbyname che fallisce.
No MP tecnici (non rispondo nemmeno!), usa il forum.