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.
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

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

Beitrag von cxAlex »

TomS hat geschrieben: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:
Da ist in den Compiler-Settings in dem File wohl explizit der x64 Compiler drin, bitte einfach umstellen. Muss das ganze immer wieder x86/x64 Ascii/Unicode testen und wie sich unterschiedlich kompilierte Server/Clients verhalten, da schalte ich das dauernd um. Die Konstanten die du ENM_Init() übergeben kannst bestimmen wie das ENM-System Initialisiert wird. Client-Only/Server-Only oder er läd nur die Tools (Cache, Log-System,...). Per Default wird einfach alles geladen wenn du keine Parameter übergibst, das kannst du zum testen so lassen. Und eine Beschreibung zu den jeweiligen Befehlen gibt's in der ENM_CommandDescription.pbi

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 »

Ah, Danke. :allright:
Einmal auf Compiler-Optionen und schon klappt's.
Dann war's ja OK, dass ich bei Init einfach nichts übergeben habe.
Ja, das mit der Beschreibung hab ich gelesen, aber da stand halt nichts über die Init drin^^

Hast wohl schon die 4.6b benutzt. Bei FindString fehlt der (seit der beta optionale) Parameter Startposition^^
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

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

Beitrag von cxAlex »

TomS hat geschrieben:Ah, Danke. :allright:
Einmal auf Compiler-Optionen und schon klappt's.
Dann war's ja OK, dass ich bei Init einfach nichts übergeben habe.
Ja, das mit der Beschreibung hab ich gelesen, aber da stand halt nichts über die Init drin^^

Hast wohl schon die 4.6b benutzt. Bei FindString fehlt der (seit der beta optionale) Parameter Startposition^^
Jup, die letzten Tests habe ich mit der Beta gemacht, steht auch im Changelog ;)

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 »

cxAlex hat geschrieben:Jup, die letzten Tests habe ich mit der Beta gemacht, steht auch im Changelog
Wo auch immer man den findet. 8)
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

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

Beitrag von cxAlex »

Direkt am Anfang von ENM.pbi unter Changelog? ^^

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
thminz
Beiträge: 84
Registriert: 25.05.2011 16:01
Computerausstattung: Windows XP, Intel Pentium 4 mit 3,2 Ghz, 2 GB RAM, 500 GB, ATI Radeon HD 4200
Wohnort: Köln

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

Beitrag von thminz »

Coool danke danke genau das suche ich gerade danke nochmal für deine geleistete Arbeit :allright: :allright: :)
Immer Aktuelle Purebasic Version!!
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

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

Beitrag von cxAlex »

Update V# 1.3.3

BugFix im Ping-Modul, der Unicode-Modus machte Probleme. Kleine Performance - Verbesserungen.
Simple-RPC Demo beigefügt.

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.3][Include

Beitrag von TomS »

Hi.
Ich hab jetzt mal ein bißchen damit rumgespielt.
Macht einen sehr soliden Eindruck und ist eine wahre Erleichterung gegenüber den normalen Netzwerkbefehlen.

Allerdings habe ich jetzt einen IMA: Lesefehler an Adresse 252, wenn ich aus dem Client_RecData-Callback heraus den Text von einem Webgadet ändern will. Dabei spielt es keine Rolle, ob ich die empfangenen Text setzen will, oder eine beliebige Stringkonstante.
Debugger - Speicheranzeige sagt mir dass der Bereich (252) gar nicht zum lesen freigegeben ist.
Ich nehme mal an, dass liegt an den Threads, da ich vorher noch nie einen IMA bei normalen Gadgetbefehlen hatte.
Ich habe auch schon versucht den Befehl zwischen Lock/UnlockMutex zu setzen, ohne Erfolg. Naja, war mehr ein Schuss in's blaue, da ich von Threads keinen blassen Dunst habe.

Hier ist der Code: http://purebasicusermap.bplaced.de/chat.pb.txt
Der Fehler ist in Zeile 129 bei SetGadgetItemText, in der Prozedur "Add"


EDIT:
freak hat geschrieben:WebGadget+Threads=trouble. Just don't do it.
:(
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

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

Beitrag von cxAlex »

Was ich mal sehe ist das du die Liste ohne Schutzmutex durchgehst und Clients suchst, entfernst, usw. Das geht daneben da die PB - Listen/Maps NICHT! Threadsicher sind. Du solltest sämtliche Zugriffe mit einer Mutex schützen. Ich habs mit nicht genau angesehen, aber brauchst du diese Liste wirklich, kannst du das nicht mit ENM\SetConnectionData() lösen? Da währe das Ganze schon Thread-sicher implementiert. Und ja, auch die Gadget-Bibliothek ist nicht wirklich Thread-sicher, bitte auch mit diese Get/Set Routinen mit Mutexen ummanteln (Auch in Event-Loops, usw., beim resizen, ...) um gleichzeitige Zugriffe zu verhindern! Speziell beim Web-Gadget hab ich da auch ein paar negative Erfahrungen machen müssen.

Der PB-Debugger ist leider nicht mehr wirklich hilfreich bei Threads, es passiert ein Fehler, es kommt ein Kontext-Switch und der Debugger zeigt irgendwas an. Bei Thread-Fehlern bekommt man weit öfter eine zufällige Zeile angezeigt als die Richtige :P

Gruß, Alex

//Edit: Edit erst jetzt gesehen, das wirds wohl sein :P
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.3][Include

Beitrag von TomS »

Hi, danke für die Tipps.
Ich brauch die Liste nur um den Server Daten an alle Clients senden zu lassen. Gibt's dazu vielleicht auch einen Befehl, den ich übersehen habe? Sowas wie GetNext() bei den Paketen?
Ansonsten werd ich halt alles "Mutexen", sobald ich nen adäquaten Ersatz für das WebGadget gefunden habe
Antworten