TCP Verbindung Abfrage
Übersicht

![]() |
Raiden93Betreff: TCP Verbindung Abfrage |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey,
ich habe mir zum Testen meiner Verbindungen ein kleines Programm geschrieben, doch leider Tretet ein kleiner Fehler auf der mich zum verzweifeln bringt.Ich hoffe ihr könnte mir Helfen. Der Fehler: Sobald ich den Server gestartet habe, starte ich natürlich den Client und es Funktioniert alles einwandfrei.Aber schließe ich den Server/Client steht im meinem Programm, immer noch das die Verbindung steht. Hier der Client: Code: [AUSKLAPPEN] AppTitle "Client Versuch"
Graphics 400,300,32,2 SetBuffer BackBuffer() Global FPStimer = CreateTimer(60) ;Zum Server Verbinden Global Stream = OpenTCPStream("127.0.0.1",7777) If Not Stream Then RuntimeError "Verbindung konnte nicht hergestellt werden." Global Verbunden = False Repeat Cls Verbunden_Abfrage() Flip 0 WaitTimer (FPStimer) Until KeyHit(1) CloseTCPStream(Stream) End Function Verbunden_Abfrage() If Stream Verbunden = True Else Verbunden = False End If If Verbunden = True Color 0,255,0 Text 10,10,"Server Verbunden" Else Color 255,0,0 Text 10,10,"Server nicht Verbunden" End If End Function Hier der Server: Code: [AUSKLAPPEN] AppTitle "Server Versuch"
Graphics 400,300,32,2 SetBuffer BackBuffer() ;Server eröffnen Global Stream = CreateTCPServer(7777) Global NewClient, ClientStream Global Verbunden = False Repeat Cls Player_Accept() Verbindung_Abfragen() Flip 0 Until KeyHit(1) CloseTCPStream( ClientStream ) CloseTCPServer( Stream ) End Function Player_Accept() NewClient = AcceptTCPStream(Stream) If NewClient ClientStream = NewClient End If End Function Function Verbindung_Abfragen() If ClientStream Verbunden = True Else Verbunden = False End If If Verbunden = True Color 0,255,0 Text 10,10,"Client Verbunden" Else Color 255,0,0 Text 10,10,"Client nicht Verbunden" End If End Function MFG: Raiden93/Kevin |
||
![]() |
Johannes´ |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das Problem ist, dass du ja nur am Anfang deinen Stream definierst und einen Wert hineinschreiben lässt. Während des Ablaufs fragst du dann nach, was für ein Wert dieser Stream enthält. Der Wert bleibt immer gleich, er kann sich ja nicht einfachso ändern, auch wenn die Verbindung nicht mehr besteht.
Vielleicht kannst du sowas wie einen Ping-Befehl einbauen, der prüft, ob der Server/Client noch da ist, bzw. ob das Programm dort noch läuft. |
||
![]() |
Raiden93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey,
ich bin es nochmal.Ich habe das Programm etwas verbessert.Das mit der Verbindung unterbrechen geht zwar noch nicht, aber das ist gerade nicht das Problem.Diesmal versuche ich einen Oval zu erstellen den man Bewegen kann, und wenn ein anderer Client Joint den Oval auch sieht.Leider Zeichnet mein Client den Oval nicht, da er erst abfragen soll ob er es überhaupt darf.Es scheint aber nix vom Server zu kommen.Ich habe mir gedacht das es Vielleicht daran lege das ich mit True und False arbeite, aber es als Intenger übertrage? Client: Code: [AUSKLAPPEN] Type Spielertyp
Field X#, Y#, Speed# End Type Global Spieler.Spielertyp AppTitle "Client Versuch" Graphics 400,300,32,2 SetBuffer BackBuffer() Global FPStimer = CreateTimer(60) ;Zum Server Verbinden Global Stream = OpenTCPStream("127.0.0.1",7777) If Not Stream Then RuntimeError "Verbindung konnte nicht hergestellt werden." Global Verbunden = False Global Spieler_Spawn = False Global Slot Repeat Cls Verbunden_Abfrage() Spieler_Erstellen() Spieler_Zeichnen() Spieler_Steuerung() Datentransfer() Flip 0 WaitTimer (FPStimer) Until KeyHit(1) CloseTCPStream(Stream) End Function Verbunden_Abfrage() If Stream Verbunden = True Else Verbunden = False End If If Verbunden = True Color 0,255,0 Text 10,10,"Server Verbunden" Else Color 255,0,0 Text 10,10,"Server nicht Verbunden" End If End Function Function Spieler_Erstellen() If Spieler_Spawn = True Spieler_Spawn = False Spieler.Spielertyp = New Spielertyp Spieler\X = 200 Spieler\Y = 150 Spieler\Speed = 0.2 End If End Function Function Spieler_Zeichnen() For Spieler.Spielertyp = Each Spielertyp Color 0,0,255 Oval Spieler\X,Spieler\Y,5,5 Next End Function Function Spieler_Steuerung() For Spieler.Spielertyp = Each Spielertyp If KeyDown(203) Spieler\X = Spieler\X -1 Else If KeyDown(205) Spieler\X = Spieler\X +1 Else If KeyDown(200) Spieler\Y = Spieler\Y -1 Else If KeyDown(208) Spieler\Y = Spieler\Y +1 End If Next End Function Function Datentransfer() If Stream While ReadAvail (Stream) For Spieler.Spielertyp = Each Spielertyp ReadInt(Stream) WriteInt Stream,Spieler_Spawn Next Wend End If End Function Server: Code: [AUSKLAPPEN] Type Spielertyp
Field X#, Y#, Speed# End Type Global Spieler.Spielertyp AppTitle "Server Versuch" Graphics 400,300,32,2 SetBuffer BackBuffer() ;Server eröffnen Global Stream = CreateTCPServer(7777) Global NewClient, ClientStream Global Verbunden = False Global Slot = 3 Global Spieler_Slot = 0 Global Spieler_Spawn = True Repeat Cls Server_Stats() Player_Accept() Verbindung_Abfragen() Datentransfer() Flip 0 Until KeyHit(1) CloseTCPStream( ClientStream ) CloseTCPServer( Stream ) End Function Server_Stats() Color 0,255,0 Text 10,35,"Spieler: "+Spieler_Slot+" / "+Slot End Function Function Player_Accept() NewClient = AcceptTCPStream(Stream) If NewClient ClientStream = NewClient Spieler_Slot = Spieler_Slot +1 Spieler_Spawn = True End If End Function Function Verbindung_Abfragen() If ClientStream Verbunden = True Else Verbunden = False End If If Verbunden = True Color 0,255,0 Text 10,10,"Client Verbunden" Else Color 255,0,0 Text 10,10,"Client nicht Verbunden" End If End Function Function Datentransfer() If ClientStream While ReadAvail(ClientStream) For Spieler.Spielertyp = Each Spielertyp ReadInt(ClientStream) WriteInt ClientStream,Spieler_Spawn Next Wend End If End Function |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group