Piensa Technologies

  >  Foro de Principiantes en Linux - Mensaje
Indice del Foro 
Búsqueda 
 
Búsqueda Especializada  
 
Ingresar  
Nuevo Mensaje al Foro  
 
 Acerca de Linux
La Gaceta de Linux 
Edición en español 
Gazeta do Linux 
Edición en portugués 
Foro de Principiantes 
> Mensaje
Problemas con gethostbyname
Ingresado por Manolo el día jueves febrero 03, @07:49 desde España.
Tema: [ Para Programadores ]

Es un problema que me ocurre ejecutando un servidor web hacho por mi, que funcionaba en Solaris, pero que no funciona bien en Linux.
Hola: tengo el siguiente trozo de código: int Servidor_Crea_Conexion_Inet(int puerto) { int sock; int res; struct sockaddr_in si; struct hostent *hp; char maquina[20]; sock=-1; sock=socket(AF_INET,SOCK_STREAM,0); if (sock!= -1) { gethostname(maquina, sizeof (maquina)); hp=gethostbyname(maquina); if (hp==NULL) printf ("Error %d en funcion gethostbyname\n",errno); else { memset(&si,0,sizeof(struct sockaddr_in)); si.sin_family=AF_INET; si.sin_port=htons(puerto); memmove(&si.sin_addr, hp->h_addr,hp->h_length); res=bind(sock,(struct sockaddr *)&si, sizeof(si)); if (res!= -1) { res=listen(sock,5); if (res==-1) sock=-1; } else sock=-1; } } else printf ("Error %d en la funcion socket\n",errno); return sock; } Esta función me da siempre que la ejecuto un puntero a null en la función gethostbyname, y no me crea el socket de conexión, y me da "error 0 en la función gethostbyname" ¿Alguien puede ayudarme?. Gracias.

[ Ingresar Comentario ]

<  |  >

> Comentarios
Re: Problemas con gethostbyname
por chuidiang el día viernes abril 01, @01:37

Hola:

No sé si es esto, pero te lo cuento por si te sirve de ayuda.

gethostbyname() consulta el fichero /etc/hosts. Los nombres de máquina que quieras consultar , deben estar en ese fichero.

Si tienes algo más avanzado como NIS, en ese fichero hay que poner una "marca" para que gethostbyname() utilice esos "servicios avanzados".

Se bueno.

[ Ingresar Comentario ]

 

Relacionado
  • Más acerca de Para Programadores
  • Mismo autor Manolo
  • Contacto con el autor