problema con sockets
Alvaro Herrera
alvherre en alvh.no-ip.org
Vie Dic 15 15:27:34 CLST 2006
Simon Norambuena escribió:
> Hola lister en s:
> tengo una consulta que al parecer tiene que ver con C y Linux.
> Estoy desarrollando en C una aplicación cliente - servidor, donde el
> cliente tiene windows xp y el servidor tiene linux O.S. red hat con dos
> tarjetas de red una pci y otra pcmcia , y se comunican entre sí a traves
> de un socket. El problema está en que cuando abro el socket en el servidor
> y lo pongo en modo escucha y luego hago que acepte las conexiones del
> cliente cuando se conecte, no pasa nada, no recibe datos. Luego de
> calentarme la cabeza un buen rato lo siguiente me llamo la atención, la
> tarjeta eth0 tiene ip 192.168.1.189 y la tarjeta de red eth1 (que es la que
> se conecta con el cliente) tiene ip 192.168.2.2 por lo cual en el codigo
> del servidor puse lo siguiente
>
> server.sin_addr.s_addr = inet_addr("192.168.2.2");
Esas dos direcciones no estan en la misma red, por lo tanto no hay una
ruta entre ellas ... es posible que el gateway del cliente este mandando
los paquetes a cualquier otra parte. Te sugiero cambiar la direccion
del "cliente desde la red 192.168.1.0 a 196.168.2.0 (o bien el servidor
a la red 1.0) O bien establecer una ruta "hardcoded" desde el cliente
que lleve a 192.168.2.2 pasando por la interfaz eth0.
En definitiva el problema no esta en tus programas sino en la
configuracion de red.
Más información sobre la lista de distribución Linux