|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : août 2012 Messages : 24 ![]() |
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 |
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé Sénior
![]() Inscription : juin 2008 Messages : 3 739 ![]() |
Salut,
Humm, un chat c'est un protocole IRC. Google dit qu'il y a un bibliothèque irclib à voir: je ne l'ai jamais utilisée. Sinon, il y a le librarie SocketServer qui peut donner une base. Les autres questions ne me semblent pas spécifiques à Python tant que vous ne montrez pas de code. Citation:
Cette facilité est aussi "problème" puisqu'il faut que le code synchronise les mises à jour des objets partagés. Cette synchronisation devra être explicite avec des threads mais elle pourrait être "implicite" avec des tasklets construits avec des generators (une Pythonerie utile pour remplacer les threads mais qui dit Pythonerie, dit approche difficile). Citation:
Les threads ne sont-il pas là pour ne pas bloquer en lecture ou en écriture? Je vous propose la lecture de ce vieil article du Linux Journal, il présente la mise en œuvre d'une librairie Python qui s'appelle Twisted: l'API propose une mécanique event-driven et vous n'avez plus à vous poser de question sur threads, tasklets,... la librairie a fait le choix pour vous. - W
__________________
Architectures Post-Modernes |
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : octobre 2010 Messages : 14 ![]() |
Le sujet m’intéresse énormément
Je tente de faire un serveur de jeu en ligne avec un tchat. ( client en action-script pour la compatibilité iphone/android et les options graphique ) Je vais utiliser les sockets ( xml ) aussi, n’ayant pas réussit a utiliser RPC ni les message Adobe Tu en es ou ? |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com