Server/client
Publié : lun. 30/mai/2011 13:23
salut
En ce moment, je regarde un peu le principe d'un server/client en pb, histoire de comprendre comment tout cela fonctionne
. Ça a l'air plutôt simple, pour les bases.
J'ai fait un petit tchat tout simple.
Mais je n'ai pas réussi à envoyer un message à plusieurs clients en même temps.
Savez-vous ce que je devrais faire pour que tous les clients reçoivent le message du joueur qui a écrit ?
En gros, j'ai repris l'exemple fourni dans la doc de pb, et j'ai ajouté un petit tchat (avec keyboardinkey()).
Et au niveau du server, j'ai changé ça :
J'ai essayé en créant une structure toute simple pour gérer les clients dans une list et utiliser cette liste dans cet "case", mais ça ne marche pas (voir mon code en commenté).
La structure que j'ai essayé et la liste :
Une idée de ce que je devrais faire pour que tous les joueurs reçoivent le message posté par un des joueurs ?
Merci.
En ce moment, je regarde un peu le principe d'un server/client en pb, histoire de comprendre comment tout cela fonctionne
J'ai fait un petit tchat tout simple.
Mais je n'ai pas réussi à envoyer un message à plusieurs clients en même temps.
Savez-vous ce que je devrais faire pour que tous les clients reçoivent le message du joueur qui a écrit ?
En gros, j'ai repris l'exemple fourni dans la doc de pb, et j'ai ajouté un petit tchat (avec keyboardinkey()).
Et au niveau du server, j'ai changé ça :
Code : Tout sélectionner
Case #PB_NetworkEvent_Data
If ReceiveNetworkData(ClientID, *Buffer, 1000)
;ForEach playerlist()
;If SendNetworkData(playerlist()\id, *Buffer, 1000) ; <<<<<<<<<<<<< ici, j'ai une erreur ima (invalid memory acces)
If SendNetworkData(ClientID, *Buffer, 1000) ;<<<<<<<<<<<<<<<<<<<< ici, ça marche mais chaque jouer ne recoit que son message
EndIf
;Next
FreeMemory(*buffer)
*buffer = AllocateMemory(1000)
EndIf J'ai essayé en créant une structure toute simple pour gérer les clients dans une list et utiliser cette liste dans cet "case", mais ça ne marche pas (voir mon code en commenté).
La structure que j'ai essayé et la liste :
Code : Tout sélectionner
Structure client
id.w
nom$
EndStructure
Global NewList playerlist.client()Merci.