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