Hice una función para mostrar la ip asociada a un socket TCP con función de servidor en C mediante el nombre de host.
El problema viene cuando intento usar la misma función para mostrar la ip de un socket servidor UDP. La función es la que sigue:
Código C:
Como es que me funciona si el socket es TCP pero no si es UDP? La función no debería ser la misma en ambos casos?Ver original
int MostrarIpServ() { struct hostent *datoshost; struct sockaddr_in adrhost; char nombrehost[200]; if(gethostname(nombrehost, sizeof(nomhost)) == -1) { } datoshost = gethostbyname(nombrehost); if(datoshost == NULL) { } adrhost.sin_addr.s_addr=*((unsigned long *)dadeshost->h_addr_list[0]); return 1; }
Me da un warning en la linea 9 (datoshost = gethostbyname(nombrehost);) :assignment makes pointer from integer without a cast.
Y un error en la linea 14 (adrhost.sin_addr.s_addr=*((unsigned long *)dadeshost->h_addr_list[0])): error: dereferencing pointer to incomplete type