Kommunikation zwischen Server und Client
Übersicht

ToastyBetreff: Kommunikation zwischen Server und Client |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
ich hab mal ne Frage: Ich bin wieder dabei mein Online Game mit BB zu schreiben, aber jetzt habe ich ein Problem mit TCP... Wenn der Client eine Anfrage zum Server schickt, bekommt die Server App die Anfrage, nur dann kommt ein Runtime Error... (Illigal memory Adress) BlitzBasic: [AUSKLAPPEN]
Da die Server App nochnicht BlitzBasic: [AUSKLAPPEN] Print"Any Client("+ socket$v+") sent reqeust" angezeigt hat, gehe ich davon aus das der Fehler bei BlitzBasic: [AUSKLAPPEN] socket$=ReadString(self) liegt. Wenn ich allerdings BlitzBasic: [AUSKLAPPEN] socket$=ReadString(self) in BlitzBasic: [AUSKLAPPEN] socket$=ReadString(req) umänder, wird "Any Client("+ socket$ +") sent request" angezeigt. Aber die Variable socket$ vertretet dann komischerweise "1". Was ist das Problem? |
||
![]() |
Starwar |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] If req Then Exit
req=AcceptTCPStream(self) Forever Code: [AUSKLAPPEN] socket$=ReadString(self)
AcceptTCPStream ![]() Code: [AUSKLAPPEN] client=OpenTCPStream(socket$,201)
Wozu ist das? Ich verstehe dein Programmablauf nicht... Bitte erklärs mir ![]() MFG PS: Goto ist böse ![]() |
||
Toasty |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also das ist eine Schleife, die immerwieder abfragt, ob ein Client nach Login fragt...
Aber AcceptTCPStream() ist doch schon req ... Gruß Toasty PS: Was kann ich denn sonst benutzen wenn er die Schleife erneut starten soll? |
||
![]() |
Starwar |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du kannst einen Type erstellen, in dem du die Streams speicherst die dir AcceptTCPStream![]() Du kannst mit einer For-Each ![]() ![]() Das AcceptTCPStream bleibt in der Hauptschleife. Pseudo-Code: [AUSKLAPPEN] server=CreateTCPServer(port%)
Repeat If neu=AcceptTCPStream(server) Then s.client = New client s\stream=neu EndIf For s.client = Each client If Not s\stream Then ;Bin ich mir nicht 100%ig sicher Delete s ;Client offline Else If bytes=ReadAvail(s\stream) > 0 Then ;Daten auslesen EndIf EndIf Next Until KeyDown(1) CloseTCPServer(server) Type client Field stream End Type EDIT: Du kannst mit ReadByte ![]() ![]() ![]() ![]() Schreiben kannst du in die streams, die per AcceptTCPStream kommen natürlich auch. MFG |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group