Foros del Web » Programación para mayores de 30 ;) » C/C++ »

errno.ENETUNREACH

Estas en el tema de errno.ENETUNREACH en el foro de C/C++ en Foros del Web. Network unreachable... Alguien puede aportarme algo mas... nose algun link de alguna pagina en la que te expliquen un poco porq se puede dar este ...
  #1 (permalink)  
Antiguo 28/01/2010, 04:57
 
Fecha de Ingreso: diciembre-2008
Mensajes: 49
Antigüedad: 15 años, 4 meses
Puntos: 1
errno.ENETUNREACH

Network unreachable... Alguien puede aportarme algo mas... nose algun link de alguna pagina en la que te expliquen un poco porq se puede dar este error?
  #2 (permalink)  
Antiguo 28/01/2010, 05:05
 
Fecha de Ingreso: diciembre-2008
Mensajes: 49
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: errno.ENETUNREACH

Hice una pequeña aplicacion con sockets y funciona perfectamente, intento hacer ping a esa misma IP y hace ping no se pierde ningun paquete, e mirado haber si era por el firewall y tampoco, lo tengo deshabilitado... Para que se entienda en una maquina tengo corriendo una serie de procesos, y en otra otros, y necesitomandar un mensaje a una de las máquinas desde la otra. No se en que punto puede estar fallando esto.
  #3 (permalink)  
Antiguo 28/01/2010, 05:48
 
Fecha de Ingreso: enero-2010
Mensajes: 24
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: errno.ENETUNREACH

Comunicacion por sockets basica (mas o menos):

Servidor:

Código C:
Ver original
  1. sockfd = socket(AF_INET, SOCK_STREAM, 0)
  2.  
  3. my_addr.sin_family = AF_INET;         // Ordenación de bytes de la máquina
  4. my_addr.sin_port = htons(puerto);
  5. my_addr.sin_addr.s_addr = INADDR_ANY; // Rellenar con mi dirección IP
  6. memset(&(my_addr.sin_zero), '\0', 8); // Poner a cero el resto de la estructura
  7.  
  8. bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)
  9.  
  10. listen(sockfd, BACKLOG)
  11.  
  12. new_fd = accept(sockfd, (struct sockaddr *)&their_addr,&sin_size)
  13.  
  14. recv(new_fd, buff, sizeof(buff), 0);


Cliente:

Código C:
Ver original
  1. bzero((void *)&serverSockAddr,sizeof(serverSockAddr));
  2.  
  3. hostAddr = inet_addr(server_name);
  4.  
  5. bcopy((void *)&hostAddr,(void *)&serverSockAddr.sin_addr, sizeof(hostAddr));
  6. serverSockAddr.sin_port = htons(port);   // host to network port
  7. serverSockAddr.sin_family = AF_INET;     // AF_*** : INET=internet
  8.  
  9. to_server_socket = socket(AF_INET,SOCK_STREAM,0)
  10.  
  11. connect (to_server_socket, (struct sockaddr *)&serverSockAddr, sizeof(serverSockAddr)

En que funcion te esta fallando?
El puerto del servidor coincide con el del cliente? es un valor permitido? esta abierto en el servidor?
  #4 (permalink)  
Antiguo 28/01/2010, 06:03
 
Fecha de Ingreso: diciembre-2008
Mensajes: 49
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: errno.ENETUNREACH

Si eso es lo que tengo pero nada!! Gracias de todos modos!
  #5 (permalink)  
Antiguo 28/01/2010, 09:25
 
Fecha de Ingreso: enero-2010
Mensajes: 24
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: errno.ENETUNREACH

Comprueba que el puerto esta abierto, suele ser el problema habitual.

Levanta el servidor y desde la maquina donde esta el cliente ejecuta:

telnet ip_servidor puerto_servidor

Si no conecta es que tienes el puerto bloqueado (o que la maquina del servidor rechaza directamente todas las conexiones de la maquina cliente).

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:14.