Logikproblem .... joa^^
Übersicht

Myn |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Habs hinbekommen, wenn auch etwas anders...
Mein neues Problem: 1) Die Übertragung dauert ca. 20sec, geht das auch schneller ? (UDP) 2) Bei meinem Chat Ingame kommt nur ca. 1 von 10 Narchichten beim anderen an? Liegt das an UDP, weil da manchmal was fehlen kann oder ist das ehr unwahrscheinlich und liegt bei mir am Code? Habe es nach diesem Vorbild gemacht: https://www.blitzforum.de/foru...hp?t=36493 (Das Beispiel von Pummelie) Wäre super wenn ihr mir das noch beantworten könntet ;D mfg Myn |
||
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, UDP überprüft nicht ob die Daten ankommen..
Am besten du guckst dir einfach mal meine SimpleUDP2 (Signatur) an, da wird ein Senden zur verfügung gestellt welches 100% sicher geht das die Nachrichten ankommen ! mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
Myn |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ist es normal das UDP ca. 20sec. braucht für die Übertragung/Empfangen ...?
Bei braucht eine Message 20sec.... das ist eigentlich viel zu lange für mein Spiel...? |
||
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es liegt nicht an UDP, es liegt an deinem Code.
UDP ist das schnellste IProtokoll was es gibt, weil es Verbindungslos ist und nicht prüft ob die Nachrichten, die versendet wurden, auch wirklich ankommen. Ohne code können wir hier wirklich nicht viel sagen ! mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
Myn |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also ich habe euch doch das Beispiel von Pummelie verlinkt....?
So habe ich es gemacht.. : (Das ist das Beispiel:) Code: [AUSKLAPPEN] Function WriteX(udp,ip,x)
WriteByte(udp,1) ; byte 1 heißt obsofort, ein int (x) wert folgt) WriteInt(udp,x) SendUDPMsg(udp,ip) End Function Function WriteY(udp,ip,y) WriteByte(udp,2) ; byte 2 heißt obsofort, ein int (y) wert folgt) WriteInt(udp,y) SendUDPMsg(udp,ip) End Function Code: [AUSKLAPPEN] If RecvUDPMsg(udp)<>0 Then Select ReadByte(udp) ;das byte auslesen, und je n nach Inhalt empfangen... Case 1 playerX=ReadInt(udp) Case 2 playerY=ReadInt(udp) End Select EndIf Das ist das Beispiel und so hab ich es auch gemacht... ausgeführt wird der Code schnell genug^^ //EDIT Hab noch eine Frage: Ich habe es so gemacht das die Client den UDP Stream erstellt und den Port dann frei wählt. Aber um Daten zu empfangen muss der Port freigeschaltet sein, geht das auch ohne das man einen Port freischaltet, weil ja nicht jeder einen freigeschalteten Port hat....? //EDIT gelöst |
||
primero |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Es könnte daran liegen dass du zu häufig etwas sendest. Wenn du in jeder Schleife alle Daten überträgst, kann das zum überlasten des Netzwerkes führen.
zumindest hatte ich das Prob mal ^^ |
||
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein es liegt daran, das er RecvUDPMsg durch die IF-Anweisung nur einmal pro Schleife ausführt und somit (mit FPS-Begrenzung) nur alle 16ms eine Nachricht auslesen kann, das führt dann zu nem kleinen Datenstau. Was ich ihm schon gesagt habe und für anderen nochmal sagen werde : Nehmt eine Whileschleife. Damit können alle Aktuellen Nachrichten direkt abgefragt werden : (Alles in der Haupt-Schleife)
Code: [AUSKLAPPEN] If RecvUDPMsg( Stream ) Then
... EndIF So kommt es zu einem Datenstau, so nicht : Code: [AUSKLAPPEN] While RecvUDPMsg( Stream )
... Wend Hier kommt auch der Vorteil der While-Schleife im Gegensatz zur Repeat schleife hervor : Es wird am anfang geprüft ob die Schleife überhaupt angefangen werden muss, und das muss sie ja nicht, wenn keine Nachrichten da sind... mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group