[gull] serveur tcp et udp clients multiple

Marc Mongenet marc at mongenet.ch
Tue Jan 6 18:18:37 CET 2009


Le 6 janvier 2009 16:24, Yann Sagon <ypublic at hasa.ch> a écrit :
> Il me semble que ce que je vais devoir faire c'est un thread par
> client tcp plus un thread pour le serveur udp. Ce dont je ne suis pas
> sûr c'est comment faire communiquer les threads entre eux.

Mmmmh, le principe des threads, c'est que la mémoire est
partagée par défaut. Ce serait plutôt pour avoir de la
mémoire propre à chaque thread qu'il faudrait faire
quelque-chose de spécial (thread-local storage).

> J'ai vu que
> qt propose différentes méthodes d'IPC.

IPC = Inter Process Communication, c'est-à-dire communication
entre processus. Mais avec des threads, il n'y a qu'un processus,
pas besoin d'utiliser des IPC.

> Ce qui me semble le plus adapté
> serait QsharedMemory, mais je n'ai pas vu comment l'intérroger
> autrement que en faisant du polling.
>
> Je suis preneur de toute piste..

Les threads se partagent les variables globales et
statiques. Utiliser ces variables pour communiquer,
en verrouillant à chaque fois l'accès avec lock au niveau
thread! Regarde par exemple du côté de QWaitCondition
(sans garantie, je n'ai jamais utilisé Qt).

-- 
Marc Mongenet
Creator of the Web 2 Markup Language
http://w2ml.com - http://w2ml.org



More information about the gull mailing list