Problema con sockets

Hola Tadeor de nuevo. Tengo un socket para cada cosa. Lo que me pasa más concretamente es:la 1ª aplicación manda un paquete UDP mediante socket a la 2ª aplicación. Hasta aquí no hay problema, lo que ocurre a continuación es el meollo. Una vez que la 2ª aplicación recibe el paquete, procesa la información y se lo manda por socket a la tercera aplicación por un puerto en concreto:A) Si la 3ª aplicación está corriendo y tiene su puerto de escucha abierto la recepción de este paquete que proviene de la 2ª aplicación llega sin problemas. B)Si la 3ª aplicación no está ejecutándose, es decir no abre su puerto de escucha lo que ocurre es que el paquete que envía la 2ª aplicación le llega a si misma por el puerto que tiene abierto para escuchar de la 1ª aplicación, por lo que se queda reenviándose a si mismo el paquete continuamente, ya que en la función OnReceive() de la 2ª aplicación se envía la información a la 3ª aplicación. No entiendo por que pasa esto. Parece como si al enviar el paquete a la 3ª aplicación y ver que no tiene su puerto de escucha abierto lo envía por otro que esté abierto y da la casualidad de que es el de escucha para la 1ª aplicación. Esto si que lo he comprobado,. En NT no pasa esto. En NT aunque yo no tenga la 3ª aplicación corriendo no pasa nada, el paquete se pierde y punto. No se que tratamiento hará windows 2000 y XP en este aspecto con los puertos. Tengo experiencia con sockets y el código que se usa es muy sencillo. Si quieres te lo mando, pero solamente utilizo sendto y receivefrom nada más.
1 saludo.
Francisco
[email protected]
Respuesta
1
De nuevo corlagon,
Bien, visto cual es en concreto el problema decirte que lo único que veo que pueda fallar son dos posibles cosas:
1.- Que el puerto que usa la tercera aplicación para recibir sea un puerto que usa el windows2000 y el XP para algo y sea un tipo de "echo", intenta cambiar el numero del puerto usado.
2.- Que las funciones send y recv en 2000 y XP necesiten de algún valor en el campo de flag para que no hagan un envío por difusión.
Son las dos cosas que se me ocurren porque por lo demás parece todo normal y corriente, la verdad me inclino más por la primera opción, cambia los puertos de las aplicaciones haber si así tienes más suerte.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas