Threads
Fermé
emira
Messages postés
3
Date d'inscription
samedi 10 février 2007
Statut
Membre
Dernière intervention
14 décembre 2007
-
14 déc. 2007 à 00:38
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 14 déc. 2007 à 09:55
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 14 déc. 2007 à 09:55
A voir également:
- Threads
- Threads meta - Guide
- Threads apk - Télécharger - Réseaux sociaux
- Compte threads - Guide
- Threads - Guide
- Compte Threads : les dangers cachés du nouveau réseau social - Guide
1 réponse
kij_82
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
14 déc. 2007 à 09:55
14 déc. 2007 à 09:55
Bonjour,
Ce genre d'erreur doit certainement venir du fait que ton interface cliente n'est pas indépendante tu programme client lui-même.
Si je ne me trompe pas, ton client attends une réponse du serveur, et pour cette raison il est bloqué jusqu'à ce qu'il réceptionne une réponse.
Pour bien faire, dans une application cliente il faut toujours dissocier la partie interface et la partie "programme" (tout ce qui est fonctionnel).
Par exemple, plutot que de lancer une programme qui fait à la fois du traitement et de l'interface, je te conseille de mettre en place une classe pour l'interface (tout ce qui concerne l'affichage), une classe pour le traitement (lancement du prog, initialisation des données, fonctions de connexion au serveur, fonctione d'envoi / réception de messages, etc.).
Au niveau de la connexion au serveur, lorsque ton prog se connecte, cela doit avoir pour conséquence de créer une liaison entre le client et le serveur (Socket) et c'est tout. Tu peux alors mettre en place un petit thread client qui sera chargé d'écouter tous les messages qui arrivent du serveur par cette liaison, et exécuter différent code selon la nature du message (connexion / déconnexion d'un autre client, envoi d'un message à afficher sur l'interface, etc.)
Pour ce qui est de l'envoi de message du client au serveur, il suffit de créer une fonction qui utilise cette Socket de connexion pour envoyer le message en question au serveur.
Ce qui veut donc dire que coté serveur, il te faut :
- 1 thread général qui écoute en boucle sur un certain port à une certaine adresse, et qui créer un nouveau thread "client" (chargé de s'occuper du client) lorsqu'un client se connecte. C'est ce thread "client" qui sera chargé de discuter avec le programme client, c'est à dire de réceptionner les messages que le client envoi et de le renvoyuer à tous les clients connectés.
Voilà, j'espère que cela t'as éclaircie un peu la manière de voir comment faire pour que ton programme de chat fonctionne sans être "bloqué".
Ce genre d'erreur doit certainement venir du fait que ton interface cliente n'est pas indépendante tu programme client lui-même.
Si je ne me trompe pas, ton client attends une réponse du serveur, et pour cette raison il est bloqué jusqu'à ce qu'il réceptionne une réponse.
Pour bien faire, dans une application cliente il faut toujours dissocier la partie interface et la partie "programme" (tout ce qui est fonctionnel).
Par exemple, plutot que de lancer une programme qui fait à la fois du traitement et de l'interface, je te conseille de mettre en place une classe pour l'interface (tout ce qui concerne l'affichage), une classe pour le traitement (lancement du prog, initialisation des données, fonctions de connexion au serveur, fonctione d'envoi / réception de messages, etc.).
Au niveau de la connexion au serveur, lorsque ton prog se connecte, cela doit avoir pour conséquence de créer une liaison entre le client et le serveur (Socket) et c'est tout. Tu peux alors mettre en place un petit thread client qui sera chargé d'écouter tous les messages qui arrivent du serveur par cette liaison, et exécuter différent code selon la nature du message (connexion / déconnexion d'un autre client, envoi d'un message à afficher sur l'interface, etc.)
Pour ce qui est de l'envoi de message du client au serveur, il suffit de créer une fonction qui utilise cette Socket de connexion pour envoyer le message en question au serveur.
Ce qui veut donc dire que coté serveur, il te faut :
- 1 thread général qui écoute en boucle sur un certain port à une certaine adresse, et qui créer un nouveau thread "client" (chargé de s'occuper du client) lorsqu'un client se connecte. C'est ce thread "client" qui sera chargé de discuter avec le programme client, c'est à dire de réceptionner les messages que le client envoi et de le renvoyuer à tous les clients connectés.
Voilà, j'espère que cela t'as éclaircie un peu la manière de voir comment faire pour que ton programme de chat fonctionne sans être "bloqué".