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

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

Re: Rep:Re: [Maitretarot-devel-fr] le client fonctionne :)


From: philippe brochard
Subject: Re: Rep:Re: [Maitretarot-devel-fr] le client fonctionne :)
Date: 23 May 2002 12:14:38 +0200
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2

"address@hidden"<address@hidden> writes:

[...]

> > l'IRC est pas mal, mais avoir une gestion centralisee 
> des messages (pour
> > par exemple discutter pendant qu'on attend un autre 
> joueur qui n'est pas
> > connecter) me semble etre une fonctionnalite 
> interessante.
> 
> A nouveau, y'a irc et les autres pour ca. Mais si c'est 
> facile a implementer dans maitretarot, allons-y!
> 
Oui, enfin ce ne sera pas aussi facile a implementer parce
qu'on a programme les fonctions read_data et write_data de
telle sorte quelles soient bloquantes (on attend d'avoir
lu/ecrit toutes les données pour passer a la suite. on dit
que c'est 'synchrone', non ?) alors que pour le chat il faut
une communication continue ('asynchrone' ?)


Une solution avant d'utiliser les threads pour le client pourrait
etre de faire un truc du genre :

pour les fonctions d'ecriture/lecture :
---------------------------------------

write_data (data, canal)
{
  envoi (canal)

  envoi (taille des donnees)

  tant que (toute les donnees ne sont pas envoyer)
  {
     envoi (donnees)
  }
}


canal, data = read_data ()
{
  lit (canal)

  lit (taille des donnees)

  tant que (toute les donnees ne sont pas lues)
  {
     lit (donnees)
  }
}


pour les fonctions clients qui on besoin de lire :
--------------------------------------------------

ok = 0
tant que (ok == 0)
{
  canal, data = read_data ()

  if (canal == 1) affiche_chat (data)

  if (canal == 0)
  {
     donnee_a_lire = data
     ok = 1;
  }
}

(enfin, il faudra faire se genre de structure a un
niveau encore plus haut, parce que du 'affiche_chat'
au niveau lecture n'est pas trop correct.)


Le gros probleme c'est qu'il risque d'y avoir des carambolages
entre les programmes qui veulent lire et ecrire en meme temps...
(c'est pour ca qu'avec 2 sockets c'est plus facile a faire,
deconnexion entre le chat et le protocole de jeu).



Philippe

-- 
,-------------------.         ,---------------,----------------------.
| Philippe Brochard |   ...   | address@hidden | http://hocwp.free.fr |
`------------------(_  (. .)  `---------------'----------------------'
-------------------ooO--(_)--Ooo--------------------------------------



reply via email to

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