//On lance un thread pour effectuer la tache en paralelle
Thread tClient = newThread(newThreadStart
(tcs.TraiterCde));
tClient.Name = "tClient"
;
tClient.Start();
}
sock.Close();
Où sock est mon socket serveur bien entendu.
Le problème vient, lorsque je lance un thread.abort() sur ce thread serveur, il ne se ferme pas car il est constamment en écoute, bloqué sur le sock.Accept().
Mis à part un BeginAccept() y a t-il une solution pour pallier à ce probleme?
VoLc0m
Messages postés40Date d'inscriptionvendredi 10 janvier 2003StatutMembreDernière intervention24 avril 2008 28 nov. 2006 à 17:16
J'ai besoin d'éclaircissements ;o)
Comment, avec cette méthode, lorsque le socket attend sur Accept(); le fait d'appeler Thread.Abort() fera passer le Accept(), et n'attendra pas un retour? C'est çà que je comprends pas :)
La je viens de coder en utilisant un BeginAccept et une tempo de 10ms aprés le BeginAccept, mais je suis pas sûr que ce soit très propre... Est ce que je risque de perdre des demandes de connexion? Où est ce que ces demandes sont juste stockées dans la file d'attente? (j'ai un Listen(10)).
VoLc0m
Messages postés40Date d'inscriptionvendredi 10 janvier 2003StatutMembreDernière intervention24 avril 2008 29 nov. 2006 à 09:39
Juste pour info, si quelqu'un a le même souci, j'ai viré le Sleep qui ne sert donc plus à rien. Il était là à l'origine pour éviter un bouclage trop fréquent, et une utilisation CPU à 100%. Avec Poll et 1 sec d'attente, plus de problème :)