Type löscht sich von selbst mit TCP?[gelöst]

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Splitfatal

Betreff: Type löscht sich von selbst mit TCP?[gelöst]

BeitragDi, Dez 12, 2006 0:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja als erstes Sorry wegen der Überschrift mir ist da aber nicht wirklich was sinnvolles eingefallen ^^

So als erstes mal das Problem ^^

Also ich habe ne art Brettspiel wo man Abwechselnd nen weißen und nen schwarzen Stein setzen muss. Nun habe ich ein Prog für den Schwarzen Stein Spieler gemacht (Server) und eins für den weißen Stein Spieler (Client)

So nun klapt alles wunderbar. Der Schwarze Spieler (server) fängt an und setzt sein Stein (kommt auch Prima beim Weißen(client) an. ) So nun Setzt der Weiße Spieler seinen Stein und das kommt auch Prima beim Schwarzen (Server) an. Nun will der Schwarze wieder setzen und eine fehlermeldung erscheind. Und zwar sagt mir der Debuger "Object does not exist" und zeigt mir Makiert diese stelle: Zitat:
WriteLine (c\stream), Nx


Nun frage ich mich wieso es c\stream auf einmal nicht mehr gibt? Habe ich es nicht richtig abgespeichert? Oder habe ich irgendwas drin das es wieder Löscht beim zweiten (Einmal hats ja geklappt) Durchlauf?

Nja ist sicher nur ein geringes Problem aber ich finds einfach nicht. Und das bei so wenig Code (der mit TCP zu tun hat)

Kann mir da vielleicht jemand weiter helfen?

So nun noch die Codes:

Server: (Stark gekürzt aber alles was mit TCP zu tun hat is drin ^^


Zitat:

Type clients
Field stream
End Type

Graphics3D 800,600,32,0

Global Client=0

Server=CreateTCPServer (8080)

While Not KeyDown(1)

Client = AcceptTCPStream(Server)

If client>0 ;
c.clients=New clients
DebugLog "neuer Client gefunden"
c\stream=client
Client=0
EndIf

;;;;;;;;Abwechselnt setzen;;;;;;;;;;;;

If Werzug=1 Then

If EntityName$ (OBID) = "Spielbrett" And MouseHit (1) Then

SS (Nx,Nz)
werzug=wdran
WriteLine (c\stream), Nx
WriteLine (c\stream), Nz

EndIf

Else

For c.clients=Each clients

If ReadAvail(c\stream)>0 Then

WNx=ReadLine(c\stream)
DebugLog "Gelesen: " + WNx
WNz=ReadLine(c\stream)
DebugLog "Gelesen: " + WNz
WS (WNx,WNz)
Werzug=Sdran

EndIf
Next
EndIf


So und hier noch der Client:

Zitat:
Graphics3D 800,600,32,0

strStream=OpenTCPStream ("127.0.0.1", 8080)

While Not KeyDown(1)

;;;;;;;;;;;Abwechselnt setzen;;;;;;;;;;;;;;;;

If Werzug=0 Then

If EntityName$ (OBID) = "Sielebrett" And MouseHit (1) Then

WS (Nx,Nz)
werzug=Sdran
WriteLine strStream, Nx
WriteLine strStream, Nz

Else

If ReadAvail(strstream)>0 Then

SNx=ReadLine(strstream)
SNz=ReadLine(strstream)

SS (SNx,SNz)
Werzug=Wdran
EndIf
EndIf



EDIT: im Irc (Chat) wurde mir geholfen Smile

Das Problem lag nur daran das man bei jedem schreiben und lesen als Server jeden Type eintrag durchgehen muss.

Also stat nur:

Code: [AUSKLAPPEN]
WriteLine (c\stream), Nx
WriteLine (c\stream), Nz


Muss:

Code: [AUSKLAPPEN]
    For c.clients=Each clients
   WriteLine (c\stream), 1
   WriteLine (c\stream), Nx
   WriteLine (c\stream), Nz
  • Zuletzt bearbeitet von Splitfatal am Mi, Dez 13, 2006 1:13, insgesamt einmal bearbeitet

shure_kyu

Newsposter

BeitragMi, Dez 13, 2006 1:12
Antworten mit Zitat
Benutzer-Profile anzeigen
jo gern geschehen Smile

_______//¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\________
◄Blitz 3D/MAX • PC - 2x 3.16Ghz, 4GB-Ram, ATi HD 4890 1024MB• win7 • site$ Rush2Play ° My-Htc.de
¯¯¯¯¯¯¯\__________________________________________________________________________//¯¯¯¯¯¯¯¯
BBP-RSS FEED Halt dich auf dem laufenden!
(C)Shure_kyu

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group