GNET GnetMessageObject [erledigt]

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

 

c64

Betreff: GNET GnetMessageObject [erledigt]

BeitragSo, Feb 15, 2009 19:29
Antworten mit Zitat
Benutzer-Profile anzeigen
[EDIT]

Hmm, naja also bin echt entäuscht aber is ja nich zu ändern ausser man implementiert es selber ansonsten besteht keine möglichkeit den Sender einer Message herauszubekommen.

Da man dadurch aber ein ID system einbauen müsste mache ich mich doch drann und schreibe mir selber ein Modul für den Netzwerkkrahms, wäre ja nicht das erstemal. Dazu werde ich wie in Battle-Blocks das Bnet(EX) von Vertex benutzen.

Eigentlich sehr schade da ich schon sehr weit mit der Implementierung des Netzwercodes war, und er echt wunderbar lief bis auf die Tatsache das keine möglichkeit bestand Nachrichten zu senden die auch 100% ankommen.

[/EDIT]

Hi,

Wie in der Überschrift schon geschrieben, da GnetMessages wohl zu 100% ankommen sind sie für bestimmte dinge unerlässlich, nur bekommt man den Peer nicht also das GnetObject was die Message gesendet hat.

Alle ankommenden Messages werden dem Localen GnetObject zugeordnet. Weiss jemand eine Lösung ?

Code: [AUSKLAPPEN]

'//////////////////////////////////////
'/
'/
'/
'/ GNET BUG !!
'/
'/ -----------------------------------

SuperStrict

Import brl.gnet

Global _self      :TgnetHost   = CreateGNetHost ()
Global _localclient :TgnetObject   
Global Port      :Int         =12345
Global Counter      :Int
   

If Not Join  () Host ()

GNetListen (_self,Port)

Graphics 100,40,,0
      

Repeat

   Cls
   
   If KeyHit(key_escape) Or AppTerminate () End
      
   ControlMessages ()
   ControlObjects  ()
      
   If MilliSecs()-Counter > 2000 Counter=MilliSecs() SendMSG()
   
   
   
   Flip

   Delay (50)
   
   GNetSync(_Self)
   
Forever

Function Join:Byte()

 

      If GNetConnect (_Self,"5.167.243.210",port,1000)
      
      _localclient = CreateGNetObject (_Self)
      
      Print "Client" AppTitle="Client"

      Return True

      EndIf
   
                            
End Function


Function Host:Byte()

      _localclient = CreateGNetObject (_Self)

      If _localclient

      Print "HOST" AppTitle="HOST"

      Return True

      EndIf
      
            
EndFunction


Function ControlMessages()



Local Message:TGnetObject

If _Localclient

   For Message=EachIn GNetMessages(_Self)

      Print"______________"
      Print"INCOMING MSG :"

            
      Local MSGObj:TGNETOBJECT = GNetMessageObject (Message)

      If GNetObjectLocal (MSGObj) Print "SENDER IS LOCALCLIENT ?!!?!!"
            
      If MSGObj

         Local TargetObject:String = String(GetGNetTarget (MSGOBJ))
         If TargetObject Print "from : "+TargetObject
      
      EndIf
      
   Next

EndIf


EndFunction


Function ControlObjects()

Local NetObject:TGnetObject

If _Localclient

   For NetObject=EachIn GNetObjects(_self)


      If GNetObjectLocal (NetObject) Continue
      
      Local State:Int=NetObject.State()
      
         
      Select State
      
      Case Gnet_Closed 

      Print"________________"
      Print"Client CLOSED  :"

      Local TargetString:String = String(GetGNetTarget (NetObject))
         If TargetString Print "ID : > "+TargetString+" <"

      Continue




      Case Gnet_Created    
      
      Print"________________"
      Print"Client Created :"
      
      SetGNetTarget (NetObject ,String("REMOTECLIENT :"+String(MilliSecs()))  )
            Local TargetString:String = String(GetGNetTarget (NetObject))
         If TargetString Print "ID : > "+TargetString+" <"
      
      EndSelect
      
   Next

EndIf

EndFunction

Function SendMSG()

      Local MSG      :TGNETOBject = CreateGNetMessage (_self)
      Local RCVClient:TGNETOBject '= _localclient
      
      For RCVClient = EachIn GNetObjects(_Self)
      
         If GNetObjectLocal (RCVClient) Print "MSG RCVR is LocalClient MSG not send !!" Continue
      
         SendGNetMessage (Msg,RCVCLient)
         
         Print "SEND"
         
      Next   
   
      
EndFunction
 


mfg. C64
Betreten verboten! Kinder haften für ihre Eltern!

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group