Ver Mensaje Individual
  #3 (permalink)  
Antiguo 28/01/2010, 05:48
Megamouse
 
Fecha de Ingreso: enero-2010
Mensajes: 24
Antigüedad: 15 años, 1 mes
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?