EasyNetworkManager [Neu: Log - System][V# 1.3.3][Include]

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Re: Easy Network Manager [V# 1.0][Include]

Beitrag von Andreas21 »

Thx,

Nun geht auch "NetEvent_Disconnect(Server, Client)" auf der Client seite :)
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6999
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Easy Network Manager [V# 1.0][Include]

Beitrag von STARGÅTE »

Hallo cxAlex,

Habe mir nicht alles bis ins Detail angesehen, aber in deinen Ausführungen lässt du ja prinzipiell auch UDP zu.
Startet man jedoch in den beinen Beispielen den Server mit
myServer = ENM\AddServer(1024, #PB_Network_UDP)
und den clienten mit
myConnection = ENM\OpenConnection("localhost", 1024, #PB_Network_UDP, @CB)

passiert nichts.
Die beiden Programmen starten und warten dann...

Muss ich da noch etwas beachten/verändern ?

Mir ist klar, das man für UDP-Übertragungen eigentlich diese ganzen Sicherheiten die dein Include bietet nicht braucht, dann wäre es aber sinnvoll, nur TCP zuzulassen.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Re: Easy Network Manager [V# 1.0][Include]

Beitrag von cxAlex »

STARGÅTE hat geschrieben:Hallo cxAlex,

Habe mir nicht alles bis ins Detail angesehen, aber in deinen Ausführungen lässt du ja prinzipiell auch UDP zu.
Startet man jedoch in den beinen Beispielen den Server mit
myServer = ENM\AddServer(1024, #PB_Network_UDP)
und den clienten mit
myConnection = ENM\OpenConnection("localhost", 1024, #PB_Network_UDP, @CB)

passiert nichts.
Die beiden Programmen starten und warten dann...

Muss ich da noch etwas beachten/verändern ?

Mir ist klar, das man für UDP-Übertragungen eigentlich diese ganzen Sicherheiten die dein Include bietet nicht braucht, dann wäre es aber sinnvoll, nur TCP zuzulassen.

Wenn du dir das Beispiel ansiehst wird die Übertragungskette im Connect() Teil des Servers ausgelöst, aber bei UDP gibts es keine Connect/Disconnect Events da es ja ein Verbindungsloses Protokol ist, oder? Hab das grade leider nicht auswendig im Kopf. Send/Receive sollte genauso gehen wie bei TCP.

Gruß, Alex
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Re: Easy Network Manager [V# 1.0][Include]

Beitrag von Andreas21 »

Hi,

ich habe Server und Client nun mit UDP gestartet.
Habe dann nach dem er die verbindung zum Server aufgebaut hat, eine Test nachricht an den Server gesendet.

Code: Alles auswählen

_NewConnection()

ENM\SendPaket(myConnection, @"Danke Server :)", 15)
Der Server reagiert darauf aber nicht.
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Re: Easy Network Manager [V# 1.0][Include]

Beitrag von cxAlex »

Ich seh mir das an.

//Edit: Hab den Fehler. Wer den Source demnächst aktualisieren.

Gruß, Alex
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Re: Easy Network Manager [V# 1.0.1][Include]

Beitrag von cxAlex »

Update ist online.

Wenn UDP - Verbindungen verwendet werden sollen bitte im ENM.pbi #ENM_SN_UDPWorkAround auf #True setzen. Es werden auch Connect & Disconnect - Events für UDP - Verbindungen aufgerufen wenn man das in der ENM.pbi aktiviert.

Das ganze ist als Compiler-Switch realisiert da man ja nicht zwingend immer UDP braucht und wenn werden ein Watcher-Thread und etwas an Sicherheits - Strukturen mehr initialisiert sodass es zu einem etwas größeren Ressourcen - Verbrauch kommt.

Gruß, Alex
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Re: Easy Network Manager [V# 1.0.1][Include]

Beitrag von Andreas21 »

Ich habe das mit dem UDP nun getestet und bei mir stützt der Server ab mit dieser meldung:

Bild

Ich habe erst den Server gestartet und danach den Client.
Nach dem die 2 nachrichten an den Server gingen und er auch geantwortet hat.
Sind ca. 2 bis 5 sec vergangen bis zum Error, in dem nichts gemacht wurde.

Code: Alles auswählen

;- Settings
;
; # Diverses
; Falscher Event-Filter. Bei Fehler beim Daten - Empfang testweise auf einen Wert 
; zwischen 8-128 setzen. (0=Disable)
#ENM_Sys_FalseEventFilter = 0
;
; Wie lange soll nach einem abgefangenen falschen Event gewartet werden?
#ENM_Sys_FalseEventFilterDelay = 5
;
; Wie lange soll gewartet werden wenn kein Event ansteht?
#ENM_Sys_NoEventDelay = 5
;
; Wie lange soll nach einem Receive gewartet werden bis der
; Empfang wieder freigegebn wird? (Sorgt für weniger falsche Calls)
#ENM_Sys_ReceiveLockDelay = 5
;
; # SafeNetwork - Einstellungen 
; WorkAround für UDP. Nur aktivieren wenn UDP benötigt wird!
#ENM_SN_UDPWorkAround = #True;#False
; Connect/Disconnect Event aufrufen.
#ENM_SN_UDPWorkAroundFakeConnect = #True
; Nach wie vielen ms soll eine inaktive UDP - Verbindung beendet werden?
#ENM_SN_UDPWorkAroundInactiveKill = 5000
; Connection - Handles abstrahieren.
#ENM_SN_UseVId = #False
;
; # JobQueue - Thread Einstellungen
; Nach wie vielen ms soll ein inaktiver Thread schlafen gelegt werden? (0=Disable)
#ENM_JQ_SleepDelay = 500 
; 
; # Paket Einstellungen
; Wie oft soll probiert werden fehlende Daten nachzuladen?
#ENM_Paket_MaxReloads = 5
; Wie viele Ms soll zwischen den Versuchen gewartet werden?
#ENM_Paket_ReloadDelay = 128
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Re: Easy Network Manager [V# 1.0.1][Include]

Beitrag von cxAlex »

Ich habs jetzt nochmal getestet (ich hab sogar das Archiv nochmal runtergeladenund nachgesehen ob ich da noch was verpfuscht hab) und kann den Fehler aber nicht reproduzieren, nicht mit x86 und auch nicht mit x64. Ich hab das Archiv entpackt, Server und Client aud UDP umgestellt und denn WorkAround aktiviert, sonst keine Änderungen. Hast du sonst was am Source verstellt?

//Edit: Die 2-5 Sekunden hören sich stark nach dem UDPWatcher() an. Ich sehs mir trozdem mal an ob ich was finde.

//Edit2: Kannst du testweise im _ENM_UDPWatcher() die Zeile
_ENM_QuitJQ(*ENM, *ClientD\JQ, *ClientD\ID)
durch
_ENM_QuitJQ(*ENM, *ClientD\JQ)
ersetzen? Danke.

Gruß, Alex
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Re: Easy Network Manager [V# 1.0.1][Include]

Beitrag von Andreas21 »

cxAlex hat geschrieben:Ich habs jetzt nochmal getestet (ich hab sogar das Archiv nochmal runtergeladenund nachgesehen ob ich da noch was verpfuscht hab) und kann den Fehler aber nicht reproduzieren, nicht mit x86 und auch nicht mit x64. Ich hab das Archiv entpackt, Server und Client aud UDP umgestellt und denn WorkAround aktiviert, sonst keine Änderungen. Hast du sonst was am Source verstellt?
Ich habe nur das geändert:

Code: Alles auswählen

#ENM_SN_UDPWorkAround = #True;#False

Client:
myConnection = ENM\OpenConnection("localhost", 1024, #PB_Network_UDP, @CB)

Server:
myServer = ENM\AddServer(1024, #PB_Network_UDP)
Sontzt nix.
cxAlex hat geschrieben://Edit: Die 2-5 Sekunden hören sich stark nach dem UDPWatcher() an. Ich sehs mir trozdem mal an ob ich was finde.

//Edit2: Kannst du testweise im _ENM_UDPWatcher() die Zeile
_ENM_QuitJQ(*ENM, *ClientD\JQ, *ClientD\ID)
durch
_ENM_QuitJQ(*ENM, *ClientD\JQ)
ersetzen? Danke.

Gruß, Alex
Der Fehler kommt immer nocht.
Ich habe mal die test version die ich benutze hoch geladen.
http://www.legenda-aurea.de/EasyNetworkManager.rar

Getestet unter Win XP Home x32
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Re: Easy Network Manager [V# 1.0.1][Include]

Beitrag von cxAlex »

Kommentiere mal den Teil mit dem ENM\CloseConnection(Client) und _NewConnection() im Client - Receive Teil aus.

Gruß, Alex
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Antworten