Seite 8 von 15
Re: Easy Network Manager [V# 1.1.2][Include]
Verfasst: 15.03.2011 18:44
von Bisonte
Ich habe da den Versuch unternommen, eine Onlineanzeige zu erstellen.
Das Problem dabei ist, dass anscheinend Pakete "verschluckt werden".
Ich habe alle Clients in einer LL. Ich muss dann also vom Server aus jeden Client mit der Liste aller verfügbaren
Clients versorgen. Dies mache ich mit einer Foreach Next Schleife.
Es ist ein String (nur als Versuch) der aus allen Namen besteht, der nachher per Stringfield wieder zerpflückt wird.
Bei dem Versuch
Code: Alles auswählen
ForEach Clients()
ENM\SendPaket(Clients()\ClientID, @String, StringByteLength(String), Kompression)
Next
kommt nicht immer bei jedem Client der String an...
Ich hab es mit 3 Usern per Internet (nicht LAN) probiert.
Mal wird jeder angezeigt (per Window wird angezeigt was empfangen wurde)
und mal nicht....
(ClientID beinhaltet die beim Serverconnect erhaltene ID)
Mach ich da jetzt einen Denkfehler, oder hat das andere Ursachen ?
Edit: noch nicht die V112 genommen.... und probiert.
Re: Easy Network Manager [V# 1.1.2][Include]
Verfasst: 15.03.2011 20:28
von cxAlex
Seltsame Sache...
"Verschluckte" Pakete hatte ich eigendlich noch nie.
Wird beim Client ein Receive Event ausgelöst und kommen die Pakete nicht an? Oder gar kein Event? Lass dir bitte mal die Rückgabe von Enm\SendPaket() ausgeben. Funktioniert die Sache über LAN? Dann könnte es ein Problem in mit den Timing-Einstellungen sein, die waren in Versionen < 1.1.2 etwas "extrem" eingestellt zum testen der Streams.
Gruß, Alex
Re: Easy Network Manager [V# 1.1.2][Include]
Verfasst: 15.03.2011 21:02
von Bisonte
Ok. Ich teste das ganze erstmal mit der 1.1.2 ...
Und ich muss mehr "Debug" Ausgaben machen
Aber vom Prinzip her ist die Versendung an viele Clients richtig ?
Oder sollte ich vielleicht ein Delay benutzen zwischen dem senden (1-5ms oder so) ?
Re: Easy Network Manager [V# 1.1.2][Include]
Verfasst: 15.03.2011 21:07
von cxAlex
Vom Prinzip seh ich jetzt keine Fehler in dem Code den ich gedehnt hab. Und Delays musst du eigendlich auch keine machen.
Gruß, Alex
Re: Easy Network Manager [V# 1.1.2][Include]
Verfasst: 16.03.2011 12:43
von cxAlex
Update V# 1.1.3
Es wurden einige Optimierungen unter der Haube am Cache - Source vorgenommen. Es wird nun weniger Verwaltungsoverhead nötig, außerdem wurde der Verwaltungs-Algo optimiert.
ENM\OpenConnection() verfügt nun über eine PrePing - Option um ungültige Verbindungsversuche schneller zu beenden. Einstellbar über die Settings.
@Bisonte:
Ich habe 2 neue Beispiele mitgeliefert, Server_Mirror.pb und Client_Mirror.pb, der Server schickt einfach alles zurück was der Client sendet. Damit solltest du das Problem der "verschluckten" Pakete einfach analysieren können
Gruß, Alex
Re: Easy Network Manager [V# 1.1.2][Include]
Verfasst: 16.03.2011 14:00
von Andreas21
Local kommen alle 1000 an.
Wenn server_mirror auf einen server im internet leuft kommen bei mir nur 880 an.
Re: Easy Network Manager [V# 1.1.2][Include]
Verfasst: 16.03.2011 14:15
von cxAlex
Andreas21 hat geschrieben:Local kommen alle 1000 an.
Wenn server_mirror auf einen server im internet leuft kommen bei mir nur 880 an.
Komische Sache ... Kannst du die Pakete auch mal am Server ausgeben lassen, damit ich sehen kann ob die Pakete bei der Client->Server oder bei der Server->Client Kommunikation verloren gehen?
Du könntest zusätzlich versuchen den Reload-Wert zu erhöhen, in den Settings unter #ENM_Paket_ReloadDelay, mal Werte zwischen 5-10 testen.
Re: Easy Network Manager [V# 1.1.3][Include]
Verfasst: 16.03.2011 15:16
von Andreas21
Beim Server ist #ENM_Paket_ReloadDelay 1 und es kommt auch alles an.
Der Client hat bei #ENM_Paket_ReloadDelay 10 zwichen 300 bis 1000
Bei #ENM_Paket_ReloadDelay 15 kommen bei mir alle an.
Re: Easy Network Manager [V# 1.1.3][Include]
Verfasst: 16.03.2011 15:27
von cxAlex
Andreas21 hat geschrieben:Beim Server ist #ENM_Paket_ReloadDelay 1 und es kommt auch alles an.
Der Client hat bei #ENM_Paket_ReloadDelay 10 zwichen 300 bis 1000
Bei #ENM_Paket_ReloadDelay 15 kommen bei mir alle an.
Wie ist dein Ping zu deinem Server?
Habe ich mir fast gedacht, liegt an den Timings. V# 1.1.4 kommt noch diese Stunde und lässt die Ping-Zeiten in die Timings einfließen, sollte diese Probleme beheben. Der die Ping-Funktion funktioniert derzeit leider nur unter Windows, andernfalls wird eine Ping-Zeit von 0ms
angenommen. Wenn jemand weiß wie ich unter Linux eine ICMP - Ping und einen DNS-Lookup realisieren kann, nur her damit.
D.h. sollange der Client unter Windows läuft sollte dann alles funktionieren, ich führe nur noche letzte Tests durch und dann gehts an den Upload.
Gruß, Alex
Re: Easy Network Manager [V# 1.1.3][Include]
Verfasst: 16.03.2011 15:51
von cxAlex
V# 1.1.4 ist online.
Die Ping-Zeiten werden nun in den Reload-Timings berücksichtigt. Außerdem gibt es nun den Befehl GetClientPing() um den Ping einer Verbindung zu ermitteln. Das SafeNetwork - Include deckt nun außerdem die komplette Netzwerk-Bibliothek ab.
Gruß, Alex