Page 1 sur 1

[RESOLU] envoyer message du serveur au client

Publié : lun. 25/août/2008 4:19
par Dioud
bonjour


dans l'help ils nous disent comment envoyer un message au serveur
http://www.purebasic.com/french/documen ... nt.pb.html
http://www.purebasic.com/french/documen ... er.pb.html

mais moi je voudrais faire l'inverse, c'est à dire envoyer un message du serveur au client

j'ai essayer ça

coté serveur

Code : Tout sélectionner

If InitNetwork() = 0
  MessageRequester("Error", "Can't initialize the network !", 0)
  End
EndIf

Port = 6832
*Buffer = AllocateMemory(1000)

If CreateNetworkServer(0, Port)

  MessageRequester("PureBasic - Server", "Server created (Port "+Str(Port)+").", 0)
  
  Repeat
      
    SEvent = NetworkServerEvent()
  
    If SEvent
    
      ClientID = EventClient()
  
                SendNetworkString(ClientID, "lol")
 
          Quit = 1
    
    EndIf
    
  Until Quit = 1 
  
  MessageRequester("PureBasic - Server", "Click to quit the server.", 0)
  
  CloseNetworkServer(0)
Else
  MessageRequester("Error", "Can't create the server (port in use ?).", 0)
EndIf

  
End   





et coté client (ou on reçoit le message)

Code : Tout sélectionner

If InitNetwork() = 0
  MessageRequester("Error", "Can't initialize the network !", 0)
  End
EndIf

Port = 6832

ConnectionID = OpenNetworkConnection("127.0.0.1", Port)
If ConnectionID
  ReceiveNetworkData(ClientID, *Buffer, 1000)
     MessageRequester("Info", "String: "+PeekS(*Buffer), 0)
  CloseNetworkConnection(ConnectionID)
Else
  MessageRequester("PureBasic - Client", "Can't find the server (Is it launched ?).", 0)
EndIf
  
End   
j'ai une erreur (coté client) ici

ReceiveNetworkData(ClientID, *Buffer, 1000)

Merci :D

Publié : mar. 26/août/2008 17:00
par Dioud
Je viens de comprendre mon erreur :)

j'avais juste oublié d'allouer une zone mémoire au début (coté client) :lol:

Publié : mar. 26/août/2008 17:39
par Ar-S
Salut,
As tu corrigé ton 1er topic du coup ?

Publié : mar. 26/août/2008 17:46
par Dioud
non, le voici corrigé


coté client

Code : Tout sélectionner

If InitNetwork() = 0
  MessageRequester("Error", "Can't initialize the network !", 0)
  End
EndIf


*Buffer = AllocateMemory(10000)  


Port = 6832

ConnectionID = OpenNetworkConnection("127.0.0.1", Port)
If ConnectionID
  ReceiveNetworkData(ConnectionID, *Buffer, 1000)
     MessageRequester("Info", "String: "+PeekS(*Buffer), 0)
  CloseNetworkConnection(ConnectionID)
Else
  MessageRequester("PureBasic - Client", "Can't find the server (Is it launched ?).", 0)
EndIf
 
End   

Publié : mar. 26/août/2008 18:02
par venom
pourquoi *Buffer = AllocateMemory(10000)
1000 c'est amplement suffisant :wink:



@++