PureBasic

Forums PureBasic
Nous sommes le Jeu 18/Avr/2019 21:36

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 5 messages ] 
Auteur Message
 Sujet du message: BindEvent
MessagePosté: Dim 03/Fév/2019 19:47 
Hors ligne

Inscription: Dim 24/Juin/2018 1:20
Messages: 83
Bonsoirs à tous,

J’aimerais que vous m'apportiez vos lumières concernant "BindEvent" , actuellement
il est limité aux seules événements lier aux gadgets et fenêtres,
la questions est la suivante, est-il possible avec un peu de bidouille, de faire en sorte
que les événements s'étendent jusqu'au "NetworkServerEvent()"?


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: BindEvent
MessagePosté: Dim 03/Fév/2019 23:08 
Hors ligne

Inscription: Ven 29/Juin/2007 17:50
Messages: 3314
Avec un peu de bidouille, oui. En fait, regarde comment faire un timer.' Je crois que c'est AddWindowTimer() et le code d'évènement, c'est une constante avec "timer" dans le nom de la constante (constantes indiquées dans la doc de WindowEvent() ).

Ça appelle une procédure toutes les 300 millisecondes par exemple. Et dans cette procédure, tu mets tes fonctions NetworkServerEvent() et l'autre si besoin.

Tu vois le topo un peu ? Ou bien c'est un peu trop olé olé ma réponse ?


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: BindEvent
MessagePosté: Lun 04/Fév/2019 20:27 
Hors ligne

Inscription: Jeu 07/Juin/2007 22:54
Messages: 261
Ekim, non on ne peux pas bind les event lié au réseau car comme tu l'as dit, le bindevent est lié aux fenêtres. Il faut donc vérifier ce qu'il ce passe coté réseau à chaques boucle.
Si ça peut t'aider voici un exemple le plus minimaliste possible d'une relation client serveur :
Serveur
Code:
InitNetwork()
CreateNetworkServer(0,5555)
*buffer = AllocateMemory(65000)
Repeat
  Select NetworkServerEvent(0)
    Case #PB_NetworkEvent_None
      Delay(3)
    Case #PB_NetworkEvent_Data
      ;gérer les datas
    Case #PB_NetworkEvent_Connect
      PokeS(*buffer,"Coucou")
      SendNetworkData(EventClient(),*buffer,StringByteLength("Coucou"))
    Case #PB_NetworkEvent_Disconnect
      ;Bye bye
  EndSelect
ForEver

client
Code:
Procedure Network(serveur)
  Select NetworkClientEvent(serveur)
    Case #PB_NetworkEvent_None
      Delay(1)
    Case #PB_NetworkEvent_Data
      Protected *buffer = AllocateMemory(65000)
      ReceiveNetworkData(serveur,*buffer,1000)
      Debug PeekS(*buffer)
  EndSelect
EndProcedure
InitNetwork()
OpenWindow(0,0,0,10,10,"",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
serveur = OpenNetworkConnection("127.0.0.1",5555)
Repeat : Network(serveur) : Until WindowEvent() = #PB_Event_CloseWindow


J'éspère ceci dit que tes yeux n'aurons même pas louché sur le message d'ollivier, car il est évidement impenssable de gérer un serveur via un windowtimer... Déjà par-ce qu'un serveur n'as généralement pas besoin d'une window... Mais aussi par-ce que "Ça appelle une procédure toutes les 300 millisecondes par exemple." ça rajoute surtout 300ms de ping comme ça... Pour le plaisire et si ton serveur est appelé à gérer plusieurs client, voir même que tu souhaite le multithread, bah ça va bien vite devenire un beau bordel.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: BindEvent
MessagePosté: Lun 04/Fév/2019 21:07 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 11/Fév/2005 17:34
Messages: 4202
Localisation: Arras, France
Fais une recherche sur les forums sur ce code
Code:
    #FD_ALL = #FD_OOB|#FD_ACCEPT|#FD_CONNECT|#FD_CLOSE
    WSAAsyncSelect_(Socket, WindowID(0), #WM_NULL, #FD_ALL)


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: BindEvent
MessagePosté: Mar 12/Fév/2019 0:30 
Hors ligne

Inscription: Dim 24/Juin/2018 1:20
Messages: 83
Ok merci c'est cool les gars)
je donnerais des nouvels dès que j'aurais un peu de temps devant moi)
:D


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 5 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye