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.
jamirokwai
Beiträge: 65
Registriert: 02.06.2008 16:10

Re: EasyNetworkManager [Neu: Authentication][V# 1.3.0][Inclu

Beitrag von jamirokwai »

Error: in included file '/root/easy/sample/../src/SafeNetwork_Experimental.pbi'
Line 557 - Structure not found: LINGER.
Der Fehler taucht auch bei PB4.51 unter Mac OS X 10.6 auf.

Gruß,
Jörg
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Re: EasyNetworkManager [Neu: Authentication][V# 1.3.0][Inclu

Beitrag von cxAlex »

Dasselbe wie bei Linux, die Variable Socket.LINGER muss im CompilerIF #PB_Compiler_Os = #PB_Os_Windows Bereich definiert werden.
Ist in der nächsten Version behoben.

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
jamirokwai
Beiträge: 65
Registriert: 02.06.2008 16:10

Re: EasyNetworkManager [Neu: Authentication][V# 1.3.0][Inclu

Beitrag von jamirokwai »

cxAlex hat geschrieben:Dasselbe wie bei Linux, die Variable Socket.LINGER muss im CompilerIF #PB_Compiler_Os = #PB_Os_Windows Bereich definiert werden.
Ist in der nächsten Version behoben.

Gruß, Alex
Hallo Alex,

da haben sich unsere Posts um ein paar Sekunden überschnitten. Ok.
Die nächste Version teste ich dann auch noch mal unter Mac OS X.

Gruß,
Jörg
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Re: EasyNetworkManager [Neu: Authentication][V# 1.3.0][Inclu

Beitrag von cxAlex »

Update V# 1.3.1

Keine großen Änderungen, die Befehlsbeschreibung wurde um die Authenticate-Befehle erweitert, ein wenig an der Hash-Übertragung gefeilt und der kleine CompilerIF Fehler behoben.

Download im 1. Post

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: EasyNetworkManager [Neu: Authentication][V# 1.3.1][Inclu

Beitrag von Andreas21 »

in ENM_ProtocolTransceiver.pbi

Code: Alles auswählen

; Protokol - Blueprint
XIncludeFile "ENM_ProtocolBluePrint.pbi"
muss

Code: Alles auswählen

; Protokol - Blueprint
XIncludeFile "ENM_ProtocolBlueprint.pbi"
heissen. Sontzt giebts Error in Linux.

Bekomme beim versuch server_stream.pb zu starten volgende meldung:

Code: Alles auswählen

Error: Line 84 - Interface method not found: AddServer.
Test unter Debian 6.
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: EasyNetworkManager [Neu: Authentication][V# 1.3.1][Inclu

Beitrag von cxAlex »

Danke, wird angepasst :)

Die Funktion heißt seit 1.3.0 OpenServer(), damit die Namens-Konvention bei allen Befehlen gleich ist. Ich bin leider schlicht noch nicht dazu gekommen alle Samples anzupassen.

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
jamirokwai
Beiträge: 65
Registriert: 02.06.2008 16:10

Re: EasyNetworkManager [Neu: Authentication][V# 1.3.1][Inclu

Beitrag von jamirokwai »

Hallo Alex,

ich habe mal die ganzen Targets auf Console eingestellt und ein repeat delay(1) until forever anstelle der Consolensache eingesetzt - macht auf dem Mac 10.6.7 / PB 4.6.0 beta 3 immer noch nicht so das, was es soll - es gibt einfach keine Anzeige in der Konsole.

Der Server (server_mirror) wird nun problemlos erstellt, der Client (client_mirror) ebenso problemlos gestartet. Die Firewall fragt nach, ob sie dem Server den Zugriff erlauben soll. So weit so gut.
Im Terminal-Fenster vom Client erscheinen aber nun im 10 (?) Sekunden-Takt das #-Zeichen. Soll da noch was anderes passieren? Du hast ein "1" deklariert, das meiner Interpretation nach hin und hergeschickt werden soll...

Gruß,
Jörg
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Re: EasyNetworkManager [Neu: Authentication][V# 1.3.1][Inclu

Beitrag von cxAlex »

Der Client macht alle 1000 Pakete ein #. Und am Ende werden die Pakete/Sekunde angezeigt. Mehr passiert eigentlich nicht.
Das mit den ganzen Konsolen Fehlern kann ich mir jetzt auch nicht erklären, ist halt schwer ohne Mac zum testen. Ich kann mir nur denken das Os X es nicht so gut findet wenn mehrere Threads auf die Konsole zugreifen wollen, ev. stell ich das ganze mal auf Fenster um.

Speziell für den Mirror solltest du in den Settings das #ENM_Sys_ReceiveLockDelay auf 0 setzen, das beschleunigt das ganze ungemein.

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: EasyNetworkManager [Neu: Authentication][V# 1.3.1][Inclu

Beitrag von cxAlex »

Update: V# 1.3.2

Am Stream-Handling wurde etwas gearbeitet, die Größe der Parts handelt sich das Stream-System nun bei Bedarf selbst aus, lediglich eine Maximalgröße wird in den Settings angegeben. Außerdem gibt es ein paar neue Funktionen um den Fortschritt eines Streams besser zu verfolgen. Der experimentelle Status des SafeNetwork - Systems ist aufgehoben und ist nun als Standard integriert.

Die größte Neuerung ist das Log - System. Damit sollten nun alle Komponenten enthalten sein um zuverlässige Client-Server Applications zu erstellen.

Das Log - System ist universell einsetzbar. Es besteht aus 2 Teilen, dem eigentlichen Logger und den Logger-Backends.

Wie benutze ich einen Logger?
Einen Logger erstellt man ganz einfach via ENM\OpenLogger(). Nun kann man via Logger\AddBackend() beliebig viele Backends hinzufügen.
Via Logger\Log(Caller$, LogLevel, LogMessage$) fügt man einen Eintrag zum Log hinzu.

Was sind diese Backends?
Die Backends entscheiden schließlich wie die Logs physisch gespeichert werden, in einer Text-Datei, in einer Datenbank, ... . Es muss nur das Interface aus ENM_LoggerReferenceBackend.pbi implementiert werden! Ein File - Backend (ENM\OpenLoggerFileBackend(LogFile$) ist bereits implementiert)
Wird nun Logger\Log() aufgerufen leitet der Logger die Log-Nachricht an sämtliche Backends weiter. So können redundant Logs auf verschiedenen Platten/Datenbanken usw. erstell werden ohne programmtechnischen Mehraufwand. Einfach sämtliche Backends am Anfang mit Logger\AddBackend() hinzufügen und das wars!

Das Log-System ist natürlich vollkommen Thread-sicher und selbst auch parallelisiert. Dadurch beeinträchtigt das Loggen die Performance die Geschwindigkeit des Programmes nicht mit z.B. Festplattenzugriffen da dies in einem extra Thread geschieht.

Kleiner Pseudo Code zur verwendung der Logger:

Code: Alles auswählen

; ENM Init Usw....
; Backends 
Define myLoggerBackend1.ENM_Logger_Backend = ENM\OpenLoggerFileBackend("C:\Log.txt")
Define myLoggerBackend2.ENM_Logger_Backend = ENM\OpenLoggerFileBackend("D:\Log.txt")
; Logger:
Global Logger.ENM_Logger = ENM\OpenLogger()
Logger\AddBackend(myLoggerBackend1)
Logger\AddBackend(myLoggerBackend2)

; ....
Procedure NetEvent_Receive(Server, Client)
  Logger\Log(#PB_Compiler_Procedure, #Logger_Info, "Receive Data")
  ; Sonstwas machen...
EndProcedure

;

Logger\Free()
myLoggerBackend1\Free()
myLoggerBackend2\Free()
Download im 1. Post

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
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Re: EasyNetworkManager [Neu: Log - System][V# 1.3.2][Include

Beitrag von TomS »

Hi,
Gibt's auch irgendwo ne Hilfe, wie man das benutzt?
Was sind das für Konstanten, wie man ENM_Init() übergeben kann?
/sample/server.pb gibt mir einen Fehler, dass der x64 Compiler nicht gefunden werden kann. Logisch, hab ja auch 32bit PB auf meinem 32bit OS.
Ich würde das gerne mal ausprobieren, aber ich steig da gar nicht durch :lamer:
Antworten