Problemas con sockets

Hola, por favor necesito tu ayuda. Veras. Estoy utilizando 3 aplicaciones hechas con visual c++. La manera que tengo que estas aplicaciones se comuniquen entre si es mediante sockets UDP. Cuando trabajo bajo windows Nt server 4.0 no tengo ningún problema, una aplicación manda un socket a la segunda, esta procesa la información y se la manda por socket a la tercera aplicación. Cada aplicación tiene 1 socket de escucha y de envío atacando a puertos distintos. La dirección IP siempre va a ser la de la máquina local, puesto que las tres corren en la misma máquina. Utilizo la fórmula de visual c++ conocida para enviar paquetes UDP SendTo(datos, tamaño de los datos, puerto, Ip, 0). A la hora de la recepción hay una clase en cada aplicación de tipo CSocket relacionadas a un puerto fijo, estas clases reciben los paquetes mediante la función OnReceive(). Lo que no me cuadra es porque con NT no hay problema al mandar paquetes en la misma máquina ennviándolos a puertos distintos con una misma IP. El problema de todo es si ejecuto las aplicaciones con windows 2000 server (service pack2), la 1ª aplicación manda el socket a la 2ª (hasta aquí perfecto) pero cuando esta procesa la información y la manda a la tercera aplicación entra como en una especie de bucle y es como si se enviara a si mismo y por su puerto el socket en cuestión, por lo que el paquete nunca llega a la 3ª aplicación. Me he asegurado que la 2ª aplicación envíe bien el paquete al puerto correcto que no es el suyo, pero nada. No entiendo la diferencia entre correr las aplicaciones bajo NT y 2000 o XP( con XP también me pasa).
Muchas gracias
Francisco
[email protected]

1 Respuesta

Respuesta
1
La verdad de redes y comunicaciones no se mucho, lo que creo que tienes que tener en cuenta es que tus versiones de MFC concuerden, puede que no sea eso pero tal vez, en versiones 2000 y XP se trabaja con MFC 6.0, en anteriores, se trabaja con MFC 4.2, 4.3, etc., compila siempre en Release con encadenamiento estático en NT antes de probar todo, si de casualidad trabajas en VisualStudio.net ahí si debes tener cuidado, porque maneja protocolos muy distintos, si no se soluciona, escribe de nuevo, bye!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas