Udp Probelm

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Jean

Betreff: Udp Probelm

BeitragSa, März 05, 2005 21:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo

Ich führe ein Programm im Hintergrund meines Spieles aus. Dieses Programm erstellt eine UDP Verbindung. Wenn ich nun mir der Schleife

Code: [AUSKLAPPEN]

Repeat
IP_Adresse = RecvUDPMsg(empfangen)
Until IP_Adresse > 0


abfrage ob ich eine Nachricht bekommen habe wird mein Spiel im Vordergrund seeeeeeeehr langsam. Kann mir jemand sagen wie ich es machen kann das diese Schleife nicht soviel Rechenleistung braucht?

Bitte helft mir!!!!!!!!!!!!
THX[/code]

Hubsi

BeitragSa, März 05, 2005 21:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Du hälst damit das Programm an bis eine Nachricht kommt. Mach es einfach so:Code: [AUSKLAPPEN]
Repeat ; Hauptschleife
ip=recv...
if ip>0
  ip=0
  ; Nachrichten lesen
endif
; weiterer Code
Until ende
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Jean

BeitragSa, März 05, 2005 22:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber das ist im grunde ja das selbe was ich gemacht habe... das Programm ist immer noch seeeeehr langsam... schade

Hubsi

BeitragSa, März 05, 2005 22:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist ganz und gar nicht dasselbe Very Happy Deine Schleife läuft solange bis irgendwas ankommt. Wenn Du das wie beschrieben einbaust läuft das Proggi mit Vollgas und nimmt die Nachtivhten nebenher mit, wenn was da ist Wink
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Jean

BeitragSa, März 05, 2005 22:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier nochmals um mein Problem besser darzustellen:

http://img136.exs.cx/my.php?lo...sse2fl.jpg
Also und hier mein Quelltext:

Code: [AUSKLAPPEN]

senden = CreateUDPStream()
If senden = 0 Then
Print "Verbindung konnte nicht erstellt werden!"
EndIf

empfangen = CreateUDPStream()
If empfangen = 0 Then
Print "Verbindung konnte nicht erstellt werden!"
EndIf


Repeat
IP_Adresse = RecvUDPMsg(empfangen)

If IP_Adresse = 1 Then
senderip = DottedIP(IP_Adresse)
messenge$ = ReadLine(bekommen)
Print "Nachricht empfangen!"
Print "Sender Ip:" + senderip
Print "Nachricht:" + messenge$
EndIf

Forever



Also so sieht der Code aus wenn ich ihn deinem Beispiel anpasse. Ist aber eben immer noch zu langsam.

THX

Hubsi

BeitragSo, März 06, 2005 1:00
Antworten mit Zitat
Benutzer-Profile anzeigen
RecvUDPMsg gibt die IntegerIP zurück, nicht True oder False Wink Mit diesem Code wird also niemals der Teil innerhalb des If-Konstruktes ausgeführt. Langsam kann das nicht sein Very Happy Im Beispiel wird auf größer 0 geprüft. Wenn das zutrifft kannst Du die Nachricht lesen Wink
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Jean

BeitragSo, März 06, 2005 10:24
Antworten mit Zitat
Benutzer-Profile anzeigen
OK, hab das jetzt auch geändert... es geht immer noch nicht... viel zu langsam.... gibt es nicht noch eine andere Möglichkeit? THX Sad Sad Sad Sad Sad
[/quote]

P.S. Ich meine nicht das mein BlitzPlus Programm zu langsam ist, sondern das es einfach zuviel leistung von meinem Rechner frisst das ich im Hintergrund kein anderes Programm mehr ausführen kann.

Hubsi

BeitragSo, März 06, 2005 11:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist "normal". Blitz hält den Prozzi gerne auf Touren. Du kannst versuchen ein Delay 1 einzubauen, bei vielen reicht das schon um die Auslastung spürbar zu senken Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Jean

BeitragSo, März 06, 2005 16:56
Antworten mit Zitat
Benutzer-Profile anzeigen
THXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Jetzt gehts wunderbar! Benötigt jetzt nur noch 0-2% der Rechnerleistung!
Yeah!

Razz Razz Razz Razz Razz

Vielen Dank!

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group