Perte de reception asynchrone dans un UdpClient

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Greg
Le #19921191
On 11 août, 15:00, 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



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!
Publicité
Poster une réponse
Anonyme