problema con sockets

Simon Norambuena crazy_man12 en hotmail.com
Vie Dic 15 15:02:25 CLST 2006


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");

donde server es una estructura del tipo "struct sockaddr_in". la cosa es que 
cuando ejecuto la aplicación y hago un netstat -n o netstat -a, veo 
solamente que tiene abierto puertos en la ip 192.168.1.189, ya que muestra 
una lista con

192.168.1.189:puerto   "Listening"

entonces no sé por qué no abre el puerto que pido en la IP 192.168.2.2 que 
es la que se conecta con el cliente. Cabe destacar que los sockets del 
cliente y del servidor son del tipo tcp por lo cual deberian ser 
compatibles, ambos son declarados algo así como

aux_sock=socket(AF_INET, SOCK_STREAM, 0);

Si alguien me pueda ayudar, o si bien necesitan más información, desde ya lo 
agradecería.
Saludos.

----
Ramón Norambuena                                       Valparaiso - Longaví
Estudiante Ingenieria Civil Eléctrica
Linux user: #298615

_________________________________________________________________
De todo para la Mujer Latina http://latino.msn.com/mujer/



Más información sobre la lista de distribución Linux