Problemas con sockets

Hola tadeor, 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

1 Respuesta

13.500 pts.
Según creo entender tienes una sola clase CSocket en cada aplicación que se encarga de recibir por un puerto y enviar por otro, si esto es así no me es muy recomendable esto, crea un CSocket para recibir exclusivamente y un CSocket para enviar exclusivamente.
Si tu caso es de tener un socket para cada cosa pues la cosa se complica mucho, si dices que una aplicación envía bien a otra en 2000 y la otra no, el problema debería ser de código de la segunda aplicación, si transmite bien para uno, transmite bien para todos (en principio).
La verdad es que es un caso muy especial, si quieres enviarme el cacho de código que usas para enviar en la segunda aplicación y echarla un vistazo pues intentamos ver que puede fallar.
Un saludo y siento no poder ayudarte más.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas