Bonjour
je veux creer un serveur de chat sur un reseau local
Pour cela j'ai pensé à utiliser une liste (je l'utiliserai comme un FIFO), cette liste contient des objets, chaque objet contient source ,destination et le message .je vais utilise les sockets . pour chaque client je lancerai un thread
la question qui se pose : est-ce que les fonctions executées sur des threads differents peuvent manipuler les même objets ?
le principe est simple
1-Dés que je reçois un client je verifie la liste des gens connectés pour la lui transmettre
2-Je verifie la liste des objets pour voir s'il a des messages
3-Je copie son messge envoié dans la liste des objets
avec 2 et 3 j'ai un probleme d'organisation de communication (ecriture et lecture)
je propose deux solutions et vous me dites laquelle est la meilleur ou bien si vous avez mieux ^^
1-j'ouvre deux session pour chaque client
a-la premiere en mode ecriture (client => serveur)
b-la deuxieme dans le autre sens (serveur => serveur)
2-pour ne pas être bloquer en mode lecture sur le client ou le serveur , j'ai pensé à envoyer des messages vide , par exemple : quand le serveur ne trouve pas des messages pour le client il lui envoie un message vide , pour que le client puisse entre dans le modee ecriture
Mais si j'applique le deuxieme methode il y'aura tous le temps des messages à travers le reseau (ce n'est pas mauvais ? )
je veux savoir votre avis
merci d'avance
Partager