ReadInt gibt 0 aus?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Toasty

Betreff: ReadInt gibt 0 aus?

BeitragSo, Nov 21, 2010 15:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
für mein kleines MMORPG soll der Server dem Client eine ID zuweisen.

Dafür sendet der Client eine Anfrage an den Server...
BlitzBasic: [AUSKLAPPEN]
WriteByte world_stream,6
WriteLine world_stream,child\Name$
SendUDPMsg world_stream,INT_IP(World_IP$),World_Port%

...der Server empfängt die Anfrage und sendet die ID die vorher zugewiesen wurde... (DebugLog gab die richtige ID aus)
BlitzBasic: [AUSKLAPPEN]
			Case 6 ;Get ID
t_name$=ReadLine(stream)

For child.players=Each players
If child\name$=t_name$ Then
WriteInt stream,child\id
child\LastAnsw=MilliSecs()
Exit
EndIf
Next
SendUDPMsg stream,UDPMsgIP(stream),UDPMsgPort(stream)

...und der Client soll die ID mit ReadInt empfangen... (hier gab der DebugLog 0 aus)
BlitzBasic: [AUSKLAPPEN]
ms=MilliSecs()
Repeat
If recv<>0 Then Exit
If MilliSecs()>ms+UDP_Timeout% Then RuntimeError"Unable to reach World Server! (UDP TIMEOUT)"

recv=RecvUDPMsg(world_stream)
Forever
child\id=ReadInt(world_stream)


Ich bin echt Ratlos woran das liegen könnte...

Gruß Toasty
@AMD Phenom BE X4 2,5Ghz(Overclocked 2,61Ghz); 4GB DDR2; 512MB nVidia GeForce 8400gs; Win7 Home Premium 64bit
Lua for President!

TimBo

BeitragSo, Nov 21, 2010 15:40
Antworten mit Zitat
Benutzer-Profile anzeigen
mach es vom Server zum clienten auch mit IDs das hilft dir beim Debuggen.
zudem würde ich dir empfehlen bei so "einmaligen" und "wichtigen" Paketen TCP zu verwenden.

Lg
TimBo
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.
 

Toasty

BeitragSo, Nov 21, 2010 15:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay ich probiers mal aus.

Danke für die Hilfe Smile
@AMD Phenom BE X4 2,5Ghz(Overclocked 2,61Ghz); 4GB DDR2; 512MB nVidia GeForce 8400gs; Win7 Home Premium 64bit
Lua for President!

BladeRunner

Moderator

BeitragSo, Nov 21, 2010 15:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
zudem würde ich dir empfehlen bei so "einmaligen" und "wichtigen" Paketen TCP zu verwenden.

Da TCP unter BB blockend ist wäre das eine eher schlechte Idee. Lieber der Message eine ID mitgeben und sich den Empfang bestätigen lassen und im Zweifelsfalle erneut senden.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

TimBo

BeitragSo, Nov 21, 2010 15:50
Antworten mit Zitat
Benutzer-Profile anzeigen
vielleicht hat er ja auch andere Pakete die wichtig sind. Chatverlauf usw.
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.
 

Toasty

BeitragSo, Nov 21, 2010 16:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja ich hab es jetzt mit TCP geschafft. Ist zwar beim Öffnen des Streams etwas langsam, aber es geht.

Gruß
@AMD Phenom BE X4 2,5Ghz(Overclocked 2,61Ghz); 4GB DDR2; 512MB nVidia GeForce 8400gs; Win7 Home Premium 64bit
Lua for President!

BladeRunner

Moderator

BeitragSo, Nov 21, 2010 18:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Du wirst bei einem MMO mit TCP keine freude haben Wink

Edit: ...denn wie schon erwähnt blockiert TCP unter BB. UDP ist - da Du viele Daten an viele Stellen übertragen musst- die deutlich bessere Lösung.
Du musst halt nur ein System einbauen was auf die Vollständigkeit der Nachrichten prüft. Das hat auch nichts mit der Wichtigkeit der Daten zu tun, Timbo, sondern damit dass TCP unter BB unter Umständen dein gesamtes Programm ausbremst, und das wortwörtlich.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

TimBo

BeitragSo, Nov 21, 2010 18:06
Antworten mit Zitat
Benutzer-Profile anzeigen
readavail bremst aus ?
ok das hab ich nicht gewusst
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.

Holzchopf

Meisterpacker

BeitragSo, Nov 21, 2010 18:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Nicht ReadAvail, sondern die TCP-Implementation in BB. Denn: Wenn du über TCP sendest, wird das Programm bei WriteLine angehalten, bis entweder der Empfänger den Empfang bestätigt hat (das dauert im besten Fall ein dutzend Millisekunden) oder bis das TimeOut erreicht wurde (standardmässig auf 10 Sekunden eingestellt, kann mit TcpTimeOuts eingestellt werden.

mfG
Holzchopf
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

TimBo

BeitragSo, Nov 21, 2010 19:26
Antworten mit Zitat
Benutzer-Profile anzeigen
ist das in BMax auch so?
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.

BladeRunner

Moderator

BeitragSo, Nov 21, 2010 20:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, in BMax gibt es blockfreie TCP-Streams
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group