Perte de reception asynchrone dans un UdpClient

1 réponse
Avatar
Greg
Bonjour,

J'ai un probleme avec un UdpClient, il ne recoit plus rien apres un
certain temps d'inactivite.

Mon thread est tres simple :

----
while (true)
{
ar = BeginReceive(callback);
ar.AsyncWaitHandle.WaitOne();
data = EndReceive();
Console.WriteLine(data);
}

void callback()
{
// Rien ici, on se sert du AsyncResult
}
----

Si l'emetteur arrete d'envoyer pendant quelques minutes, mon thread
reste bloque dans la fonction WaitOne(), meme si de nouvelles data
arrivent (confirme par une analyse Wireshark).

J'ai teste aussi de faire le EndReceive() dans le callback par acquis
de conscience, ca me fait la meme chose.

Quelqu'un a une piste ? Il y a surement un truc que je fais mal mais
j'arrive pas a cerner le probleme...

Merci d'avance

1 réponse

Avatar
Greg
On 11 août, 15:00, Greg wrote:
Bonjour,

J'ai un probleme avec un UdpClient, il ne recoit plus rien apres un
certain temps d'inactivite.

Mon thread est tres simple :

----
while (true)
{
  ar = BeginReceive(callback);
  ar.AsyncWaitHandle.WaitOne();
  data = EndReceive();
  Console.WriteLine(data);

}

void callback()
{
  // Rien ici, on se sert du AsyncResult}

----

Si l'emetteur arrete d'envoyer pendant quelques minutes, mon thread
reste bloque dans la fonction WaitOne(), meme si de nouvelles data
arrivent (confirme par une analyse Wireshark).

J'ai teste aussi de faire le EndReceive() dans le callback par acquis
de conscience, ca me fait la meme chose.

Quelqu'un a une piste ? Il y a surement un truc que je fais mal mais
j'arrive pas a cerner le probleme...

Merci d'avance



Probleme trouve, c'est le firewall de windows qui laisse passer le
traffic tant qu'il y a de l'activite mais qui bloque s'il se passe
rien pendant un temps donne... ca s'invente pas!