hboutellaa
Messages postés1Date d'inscriptionmardi 3 avril 2007StatutMembreDernière intervention14 mai 2007
-
14 mai 2007 à 12:19
carbonejf
Messages postés6Date d'inscriptionvendredi 27 avril 2007StatutMembreDernière intervention27 juillet 2007
-
22 juil. 2007 à 12:10
Bonjour à tout le monde. J'ai à développer une application client-serveurs.
le client est développé en Visuel c++ 6 et le serveur en Visuel C# 2005.
j'ai rencontré les problèmes suivant:
1-je ne peut pas détecter la déconnection d'un client.
2-je ne peut pas connecter plusieurs clients en meme temps.
une aide SVP!
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 22 mai 2007 à 10:44
salut,
1 : il me semble que ca soit courant comme prb
2 : ca dépend de ton code, si tu ne lances pas de thread après ton accept, alors tant que le client n'a pas fini, tu n'appeles pas accept et donc les autres clients sont bloqués...
carbonejf
Messages postés6Date d'inscriptionvendredi 27 avril 2007StatutMembreDernière intervention27 juillet 2007 20 juil. 2007 à 10:01
Bonjour,
Je tente désepérement de créer un serveur HTTP multithread.
Mon but est de recevoir des demandes via un port défini (8080) de faire un travail et de leurt répondre.
Mon problème est que le travail à faire dure plusieurs secondes, j'ai donc essayé de faire du multithread, mais là aussi j'ai des problèmes.
Je lance dans un backgroundworker avec un httplistener.getcontext()
Quand j'ai un context, je lance un thread pour le gérer.
Mon problème est que sur le port 8080 je ne reçois le context suivant que quand j'ai fait un close
response = context.Response;
...
output = response.OutputStream;
output.Write(buffer, 0, buffer.Length);
output.Close();
Donc en fait il ne tourne pas en multithread mais gère les arrivées les unes après les autres.
J'ai essayé de me passer du HTTPListener et de le faire avec un TCPListener mais j'ai le même problème, qualqu'un peut-il m'aider?
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 20 juil. 2007 à 21:24
salut,
tu n'es pas obligé d'utiliser un backgroundworker...l'appel asynchrone par BeginGetContext et EndGetContext fait déjà le travail de création de thread...
d'ailleurs, ce n'est pas vraiment l'utilisation d'un backgroundworker qui est plutot réservé à la mise à jour async de l'IHM...
carbonejf
Messages postés6Date d'inscriptionvendredi 27 avril 2007StatutMembreDernière intervention27 juillet 2007 22 juil. 2007 à 12:10
J'ai pu résoudre mon problème.
En fait il n'existait pas :)
Pour tester mon code, je lançais dans firefox, 2 onglets qui se connectaient à localhost:8080, et firefox n'envoie apparement la demande du 2ème onglet que quand le premier est terminé et donc mes thread sont lancés les uns après les autres :)
Si je lance une requète sous IE et une sous firefox tout marche nickel.