Datentransfer mit LAmaNet...

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

super_castle

Betreff: Datentransfer mit LAmaNet...

BeitragSa, Apr 24, 2010 10:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, ich tue mich ein bisschen schwer mit LAmaNet.
Das Programm finde ich Toll mit den Demos, aber irgendwie habe ich das mit dem Datenübertragen/Netzwerk nicht so begriffen.

Ich möchte eigentlich das Programm möglichs klein haben um nur mal Daten/Text/Zahlen von einem Fenster zum andern zu übertragen. Da ist ein Beispiel mit mehreren Würfeln, aber ich komme nicht dahinter.

Wer kann mal helfen diesen Server-Client von LAmaNet möglichs klein und einfach darzustellen ?

Danke.

Gruss
 

mDave

BeitragSa, Apr 24, 2010 10:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Du solltest dir unbedingt die LAmaNet-Dokumentation herunterladen und angucken.
Diese findest Du hier: LAmaNet-Dokumentation.
In der Dokumentation ist genau das beschrieben, woran du im Moment noch Probleme hast.

Chrise

BeitragSo, Apr 25, 2010 16:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo super_castle!

Wie mDave bereits sagte, ist die Dokumentation hilfreich.


Im Grunde genommen ist bei den Beispielen wichtig zu sagen, dass Server und Client die selben Programm-abschnitte fürs Senden und Empfangen benutzen. Damit du zum Beispiel einen Text vom einen Programm ins andere übertragen kannst, musst du zuerst eine Verbindung herstellen. Um das ganze so kurz wie möglich zu halten empfehle ich dir diesen Code:

BlitzBasic: [AUSKLAPPEN]
Graphics 800,600,0,2
SetBuffer BackBuffer()

Include "LamaNet.bb"

Local HostOrClient=Input("Server(1)/Client(2) ")
Select HostOrClient
Case 1
LAMA_HostServer("LamaNet",10,"Lama")
Case 2
LAMA_StartCountServers()
End Select

Local Timer=CreateTimer(60)
While Not KeyHit(1)
LAMA_Update()
Cls

If LAMA_Connection Then
Text 0,0,"verbunden"
Else
Text 0,0,"nicht verbunden"
EndIf
WaitTimer Timer
Flip 0
Wend
End


Solange das Programm noch nicht verbunden ist, zeigt es dies eben an. Sobald es verbunden ist, ebenso.

Jetzt fehlt nur noch das verbinden mit dem Server. Dazu lassen wir das Programm sofort dann eintreten, sobald mindestens 1 Server gefunden wurde. Das Prgoramm tritt dann automatisch dem ersten gefundenen Server bei:

BlitzBasic: [AUSKLAPPEN]
Graphics 800,600,0,2
SetBuffer BackBuffer()


Include "LamaNet.bb"

Local HostOrClient=Input("Server(1)/Client(2) ")
Select HostOrClient
Case 1
LAMA_HostServer("LamaNet",10,"Lama")
Case 2
LAMA_StartCountServers()
End Select

Local Timer=CreateTimer(60)
While Not KeyHit(1)
LAMA_Update()
Cls

If LAMA_Connection Then
Text 0,0,"verbunden"
Else
Text 0,0,"nicht verbunden"
If LAMA_CountServers>0 Then
LAMA_JoinServer(1,"JoinLama")
EndIf
EndIf
WaitTimer Timer
Flip 0
Wend
End


Jetzt fehlt eigentlich nur noch das Senden und Empfangen. Dazu wenden wir in der Schleife LAMA_Send() und einmal LAMA_Read() an. Da das Programm alle empfangene Nachrichten auslesen soll, wird dazu eine While LAMA_Recv() schleife benötigt. LAMA_MsgID und LAMA_From sind beide globale Variablen, haben deshalb keine Klammern!
Und gesendet und empfangen wird nur, solange das Programm verbunden ist!
Der Text wird eingelesen und schließlich automatisch am Bildschirm ausgegeben.
Damit Events, wie beispielsweise "Spieler tritt bei", "Spieler verlässt spiel", usw. nicht unnötig gestapelt werden noch ein LAMA_ClearEvents(). Und damit ist der kleine Test eigentlich schon fertig Smile

BlitzBasic: [AUSKLAPPEN]
Graphics 800,600,0,2
SetBuffer BackBuffer()

Include "LamaNet.bb"

Local HostOrClient=Input("Server(1)/Client(2) ")
Select HostOrClient
Case 1
LAMA_HostServer("LamaNet",10,"Lama")
Case 2
LAMA_StartCountServers()
End Select

Local Txt$
Local Timer=CreateTimer(60)
While Not KeyHit(1)
LAMA_Update()
Cls

If LAMA_Connection Then
Text 0,0,"verbunden"
Text 0,15,Txt$

LAMA_Send(0,1,"1...2...3... Test")

While LAMA_Recv()
Select LAMA_MsgID
Case 1
Txt$=LAMA_Read()
End Select
Wend
LAMA_ClearEvents()
Else
Text 0,0,"nicht verbunden"
If LAMA_CountServers>0 Then
LAMA_JoinServer(1,"JoinLama")
EndIf
EndIf
WaitTimer Timer
Flip 0
Wend
End


fröhliches Testen!
Ich denke das es so funktionieren sollte Wink

lg Chrise
Llama 1 Llama 2 Llama 3
Vielen Dank an Pummelie, der mir auf seinem Server einen Platz für LlamaNet bietet.
 

super_castle

BeitragSo, Apr 25, 2010 18:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Jup, danke.

Gruss
 

super_castle

BeitragSo, Apr 25, 2010 18:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe hier von Purebasic einen "Client", aber nur mit Portnummer.
Wie ich den jetzt mit deinem da oben Verbindung aufnehmen?

Gruss

Code: [AUSKLAPPEN]

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

Port = 6832

ConnectionID = OpenNetworkConnection("127.0.0.1", Port)
If ConnectionID
  MessageRequester("PureBasic - Client", "Client connected to server...", 0)
 
  SendNetworkString(ConnectionID, "An hello from a client !!! :-)")
   
  MessageRequester("PureBasic - Client", "A string has been sent to the server, please check it before quit...", 0)
 
  CloseNetworkConnection(ConnectionID)
Else
  MessageRequester("PureBasic - Client", "Can't find the server (Is it launched ?).", 0)
EndIf
 

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group