maitretarot-devel-fr
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Maitretarot-devel-fr] sockets, serveurs, fork, POSIX...


From: Yves Mettier
Subject: Re: [Maitretarot-devel-fr] sockets, serveurs, fork, POSIX...
Date: Mon, 3 Feb 2003 21:25:15 +0100 (CET)

> Premier post -> je me présente.
> Je suis Olivier Péningault, joueur de tarot (vainqueur du tournoi
> licence/maitrise il y a deux ans... :) et de belote (habitué du concours du 
> bar pas
> loin de chez moi) et membre de gulliver (GULL Rennais) et de hurdfr (GUG 
> français).
> Accessoirement, je gagne ma vie en faisant de l'informatique, en particulier 
> du
> réseau.

Tiens, bonjour :)

>
> le lun 03-02-2003 à 16:34, Yves Mettier a écrit :
>> Coucou!
> Salut,
>
>> [snip ...]
>>
>> HEEEEEEEEEEELP !!!!!!!!!!!!!
> Ce problème peut typiquement être résolu par un select().
>
> Faire des forks, C'est Mal (c)(tm) dans un contexte serveur
> multi-clients, car après tu dois communiquer via de la mémoire partagée, que 
> tu
> synchronises à coup de sémaphores en espérant éviter les
> interblocages, bien sûr (c'est faisable, mais comptez pas sur moi... ;)

Ici, nous avons un cas particulier. Une fois le fork realise, il n'y a plus de
communication entre le pere et le fils. Sauf eventuellement des spectateurs qui
viendraient s'y connecter, et c'est la la difficulte.
C'est justement pour cela que je prefere la solution fork: chaque serveur 
devient
vraiment independant puisqu'il l'est deja au niveau algorithmique.

Avant le fork, et apres, dans chaque fils, ce sera evidemment du select.

Pas de memoire partagee, pas de semaphores, rien de tout cela.

>
> Par contre, si tu gères tout dans un seul processus, tu lances un select qui 
> écoute
> les nouvelles connections + les clients déjà connectés, et à chaque 
> réception, tu fais
> _ce_que_tu_veux_ !
> Libre à toi de gérer de l'asynchronisme (bon courage) ou de dire au client
> d'attendre.... C'est simple, robuste, rapide, extensible, [....]
>
> Je vais voir le code (j'ai téléchargé les fichiers de release sur
> nongnu.org en espérant que tout a pas été refait) et si ça se trouve, je 
> pourrais te
> faire ça vite fait (c'est simple ... quand on sait comment ça marche... :)

Rien n'a ete refait pour l'instant, mais par contre, justement, on va tout 
refaire dans
le serveur pour prendre en compte le nouveau protocole et certains changements
structurels:
- jeu a 3 et a 5 joueurs possible (dans le futur)
- protocole extensible (on en a assez cause ici-meme avant:)
- plusieurs parties sur un serveur
- possibilite de rajouter des spectateurs.

Moi, je repars de zero sur le serveur, et je repiquerai le peu de code 
utilisable de
l'actuel serveur par la suite (les regles du jeu et la config)
Du coup, si tu veux faire cela, c'est tout facile: on repart de zero!

Yves
-- 
- Homepage - http://ymettier.free.fr - http://www.cmg.com -
- GPG key  - http://ymettier.free.fr/gpg.txt              -
- MyAM     - http://www.freesoftware.fsf.org/myam         -
- GTKtalog - http://www.freesoftware.fsf.org/gtktalog     -








reply via email to

[Prev in Thread] Current Thread [Next in Thread]