TCP Plot Verbindung

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Raiden93

Betreff: TCP Plot Verbindung

BeitragDi, Nov 02, 2010 20:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey,
ich will TCP Verbindung mit einem Plot machen, so das Client den Plot Steuern kann, und der Server es nur ausgibt.Der Client sollte es natürlich auch sehen.
Das mit dem Client scheint soweit geschafft.Doch leider zeichnet der Server nicht den Plot.

Client:
Code: [AUSKLAPPEN]
Graphics 400,300,0,2
Global Timer = CreateTimer(60)
AppTitle "Client"
SetBuffer BackBuffer()

; Zum Server verbinden
Local Stream = OpenTCPStream( "178.1.6.142", 7777 )
If Not Stream Then RuntimeError "Verbindung konnte nicht hergestellt werden."

Color 160, 160, 160
Print "Verbinde..."

Local MsgCount = 1, MsgSendTime = MilliSecs() +1000
Local txt$

Global PlotX# = 200

While Not KeyHit(1)
   Cls
   WriteLine Stream, PlotX#
   Plot PlotX#,200
   
   PlotX# = MouseX()
   
   While ReadAvail( Stream )
      ReadLine Stream
   Wend
   
   Flip 0
   WaitTimer(Timer)
Wend

; Stream schliessen
CloseTCPStream( Stream )
End


Server:
Code: [AUSKLAPPEN]
Graphics 400,300,0,2
Global Timer = CreateTimer(60)
AppTitle "Server"
SetBuffer BackBuffer()

; Server eröffnen
Local Stream = CreateTCPServer( 7777 )
Color 160, 160, 160
Print "Server eröffnet"

Local NewClient, ClientStream
Local MsgCount
Local txt$

Global PlotX# = 200

While Not KeyHit(1)
   Cls
   
   If ClientStream
      While ReadAvail( ClientStream )
         ReadLine ClientStream
         Plot PlotX#,200
         
         WriteLine Stream, PlotX#
      Wend
   End If
   
   Flip 0
   WaitTimer(Timer)
Wend

; Streams schliessen
If ClientStream Then CloseTCPStream( ClientStream )
CloseTCPServer( Stream )
End

faeX

BeitragDi, Nov 02, 2010 20:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Offensichtlicher Fehler: Weder Client noch Server nimmt die mit ReadLine gelesenen Daten an und speichert sie in PlotX. Aber das wird wahrscheinlich auch so nicht gut gehen, da ja beide irgendwie sich gegenseitig was senden und das in die gleiche Varialbe PlotX schreiben. Außerdem ist ReadLine / WriteLine hier schlecht. Für FLoats nimmt man WriteFloat und ReadFloat. Da MouseX() eh nur einen Integer zurückgibt: WriteInt und ReadInt.

Raiden93

BeitragDi, Nov 02, 2010 20:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe es nun Verbessert, jetzt aber zeichnet der Server nur Kurz 1 mal den Plot, und lässt ihn aber die ganze Zeit an einem Fleck, auch wenn ich den Plot beim Client bewege.

Client:
Code: [AUSKLAPPEN]
Graphics 400,300,0,2
Global Timer = CreateTimer(60)
AppTitle "Client"
SetBuffer BackBuffer()

; Zum Server verbinden
Local Stream = OpenTCPStream( "127.0.0.1", 7777 )
If Not Stream Then RuntimeError "Verbindung konnte nicht hergestellt werden."

Color 160, 160, 160
Print "Verbinde..."

Global PlotX# = 200

While Not KeyHit(1)
   Cls
   WriteFloat Stream, PlotX#
   Plot PlotX#,200
   
   PlotX# = MouseX()
   
   While ReadAvail( Stream )
      ReadFloat Stream
   Wend
   
   WaitTimer(Timer)
   Flip 0
Wend

; Stream schliessen
CloseTCPStream( Stream )
End



Server:
Code: [AUSKLAPPEN]
Graphics 400,300,0,2
Global Timer = CreateTimer(60)
AppTitle "Server"
SetBuffer BackBuffer()

; Server eröffnen
Local Stream = CreateTCPServer( 7777 )
Color 160, 160, 160
Print "Server eröffnet"

Local NewClient, ClientStream
Local txt$

Global PlotX#

While Not KeyHit(1)
   Cls
   NewClient = AcceptTCPStream( Stream )
   If NewClient
      ClientStream = NewClient
   EndIf
   
   If ClientStream
      While ReadAvail( ClientStream )
         Text 10,10, "Client verbunden"
         ReadFloat ClientStream
         Plot PlotX#,200
         
         
         WriteFloat ClientStream, PlotX#
      Wend
   End If
   
   WaitTimer(Timer)
   Flip 0
Wend

; Streams schliessen
If ClientStream Then CloseTCPStream( ClientStream )
CloseTCPServer( Stream )
End

Raiden93

BeitragDi, Nov 02, 2010 23:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Fertig

Client:
Code: [AUSKLAPPEN]
Graphics 400,300,0,2
Global Timer = CreateTimer(60)
AppTitle "Client"
SetBuffer BackBuffer()

; Zum Server verbinden
Local Stream = OpenTCPStream( "178.1.6.142", 7777 )
If Not Stream Then RuntimeError "Verbindung konnte nicht hergestellt werden."

Color 160, 160, 160
Print "Verbinde..."

Local PlotX# = 200
Local PlotY# = 150
Local Verbunden = False

While Not KeyHit(1)
   Cls
   WriteInt Stream, PlotY#
   WriteInt Stream, PlotX#
   Oval PlotX#,PlotY#,5,5
   
   PlotY# = MouseY()
   PlotX# = MouseX()
   If Verbunden = True
      Text 10,10,"Server Verbunden"
   Else
      Text 10,10,"Server nicht Verbunden"
   End If
   
   While ReadAvail( Stream )
      ReadInt (Stream)
      Verbunden = True
   Wend
   
   Flip 0
Wend

; Stream schliessen
CloseTCPStream( Stream )
End


Server:
Code: [AUSKLAPPEN]
Graphics 400,300,0,2
Global Timer = CreateTimer(60)
AppTitle "Server"
SetBuffer BackBuffer()

; Server eröffnen
Local Stream = CreateTCPServer( 7777 )
Color 160, 160, 160
Print "Server eröffnet"

Local NewClient, ClientStream
Local PlotX#
Local PlotY#
Local Verbunden = False
Local test
Local test2

While Not KeyHit(1)
   Cls
   NewClient = AcceptTCPStream( Stream )
   If NewClient
      ClientStream = NewClient
      Verbunden = True
   EndIf

If Verbunden = True
   Text 10,10, "Client verbunden"
Else
   Text 10,10, "Kein Client verbunden"
End If
Oval test2,test,5,5
   If ClientStream
      While ReadAvail( ClientStream )
         test = ReadInt (ClientStream)
         test2 = ReadInt (ClientStream)
         
         WriteInt ClientStream, PlotX#
         WriteInt ClientStream, PlotY#
      Wend
   Else
      Verbunden = False
   End If
   
   Flip 0
Wend

; Streams schliessen
If ClientStream Then CloseTCPStream( ClientStream )
CloseTCPServer( Stream )
End

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group