Aktuelle Zeit: 20.01.2021 15:15

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 149 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4, 5 ... 15  Nächste
Autor Nachricht
 Betreff des Beitrags: Re: Easy Network Manager [Include]
BeitragVerfasst: 31.01.2011 00:42 
Offline
Benutzeravatar

Registriert: 26.06.2008 10:42
Andreas21 hat geschrieben:
Hi,

Ich habe die vorlage des Servers und Client mal getestet.
Mir ist ein Problem aufgefallen.

Ab und zu bleibt der Client bei Packet 3 stehen.

Wenn man die verbindung zum Server aufbaut mit dem Client geht es super beim erstenmal.
Beendet man den Client dann und startet ihn neu, sendet der Server ihm zwar die Packete und der Client antwortet auch.
Nur der Server reagiert auf die antwort vom Client nicht.


Problem gefunden. Hab im letzten Moment noch was mit den Flags für Receive/ReceiveFile verpfuscht :oops:

Wurde bereinigt. 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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Easy Network Manager [Include]
BeitragVerfasst: 31.01.2011 02:33 
Offline

Registriert: 30.08.2004 09:05
Wohnort: Heidelberg
Hi,

nun hab ich das Problem wenn ich den Server auf einem Debian 5 Server lauffen lasse und auf Windows den Client, das ich nur das "haha1" bekomme und mehr nicht.

_________________
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Easy Network Manager [Include]
BeitragVerfasst: 31.01.2011 10:55 
Offline
Benutzeravatar

Registriert: 26.06.2008 10:42
Andreas21 hat geschrieben:
Hi,

nun hab ich das Problem wenn ich den Server auf einem Debian 5 Server lauffen lasse und auf Windows den Client, das ich nur das "haha1" bekomme und mehr nicht.


Hm ... komisches Problem. Hab leider keinen Debian - Server zur Hand um das zu testen. Zwischen Win-Win ist alles ok? Und wenn der Client auf Debian läuft und der Server auf Windows? Das einzige was mir grade einfällt, du könntest probieren in der ENM_Paket.pbi in der Procedure _ENM_ReceivePakets() den Wert von ReceiveBlockSize von 32*1024 auf 8*1024 oder 4*1024 zu ändern, bzw. du könntest dir die Variable GesMemSize im Debugger anzeigen lassen um festzustellen ob es daran liegt das nichtmal alle Daten ankommen oder das Problem an der Paket-Zerlegung liegt.

//Edit:
So, hab jetzt Zugriff auf meinen Source. Kannst du folgende änderungen an der ENM_Pakets.pbi vornehmen und mir das ergebniss mitteilen:

Am Anfang das Source:

Code:
; ------------------------------------------------------------------------------------
; Paket Settings:

; 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
; ------------------------------------------------------------------------------------


Gegebenenfalls noch weiter erhöhen.

Und diese 2 Macros/Proceduren ersetzen:

Code:
; Reload probieren
Macro _ENM_Paket_TryReload()
  If RLCount < #ENM_Paket_MaxReloads
    RLCount + 1
    Debug "Try Reload " + Str(RLCount)
    Delay(#ENM_Paket_ReloadDelay)
    Continue
  EndIf
EndMacro

; Paket empfangen
Procedure _ENM_ReceivePaket(*ENM.ENM_Data, Connection)
  Protected ReceiveBlockSize, BlockCount, GesMemSize, *PaketMem._ENM_PaketHeader, Rest, Pos, RLCount, *MemBase
  Protected *Paket._ENM_Pakets_Data = _ENM_NewPaket(), *uMem
   
  ReceiveBlockSize =  8*1024 ;32*1024 ; Empfangsblock-größe
  BlockCount = #Null ; Anzahl Blöcke
  GesMemSize = #Null ; GesamtSpeicher-größe
  *PaketMem = #Null ; Speicher
  *MemBase = #Null  ; Speicher - Grundadresse
 
  Repeat
    *PaketMem = *MemBase ; Nötig falls nachgeladen werden muss
   
    Repeat ; Daten einlesen
      *PaketMem = ReAllocateMemory(*PaketMem, (BlockCount + 1)*ReceiveBlockSize)
      Rest = ReceiveNetworkData(Connection, *PaketMem + GesMemSize, ReceiveBlockSize)
      GesMemSize + Rest
      BlockCount + 1
    Until Rest<>ReceiveBlockSize
   
    Debug "GesMem: "+Str(GesMemSize)
   
    *MemBase = *PaketMem ; Nötig zum freigeben + Nachladen
    *PaketMem + Pos ; Nötig Falls Nachgeladen werden muss
   
    If GesMemSize >= SizeOf(_ENM_PaketHeader) ; Haben wir wenigstens einen gültigen Header?
      While GesMemSize-Pos > 0 ; Speicher durchgehen
        If (*PaketMem\Sign!*PaketMem\Sign2) = $FF; Prüfen ...
          If (*PaketMem\Size + Pos + SizeOf(_ENM_PaketHeader)) <= GesMemSize ; Passen die Angaben?
           
            ; Neues Paket erstellen
            AddElement(*Paket\Pakets())
            If *PaketMem\comp ; Kompression
              ; Daten entpacken
              *uMem = zLib_uncompress(*PaketMem + SizeOf(_ENM_PaketHeader), *PaketMem\Size, *PaketMem\cSize)
              If *uMem ; entpacken Ok
                ; Paket schreiben
                *Paket\Pakets()\MemSize = *PaketMem\cSize
                *Paket\Pakets()\Mem = *uMem
               
                ;  Weiterzählen
                Pos + *PaketMem\Size + SizeOf(_ENM_PaketHeader) ; Position anpassen
                *PaketMem + SizeOf(_ENM_PaketHeader) + *PaketMem\Size ; Pointer anpassen
               
              EndIf
            Else ; keine Kompression
              ; Paket schreiben
              *Paket\Pakets()\MemSize = *PaketMem\Size
              *Paket\Pakets()\Mem = AllocateMemory(*Paket\Pakets()\MemSize)
             
              *PaketMem + SizeOf(_ENM_PaketHeader) ; Auf Dateposition gehen
              CopyMemory(*PaketMem, *Paket\Pakets()\Mem, *Paket\Pakets()\MemSize) ; Daten abspeichern
             
              ; Weiterzählen
              *PaketMem + *Paket\Pakets()\MemSize ; Adresse Anpassen
              Pos + *Paket\Pakets()\MemSize + SizeOf(_ENM_PaketHeader) ; Position anpassen
            EndIf
           
          Else ; Reload probieren
            _ENM_Paket_TryReload()
          EndIf
        Else
          Debug "Signature Error"
        EndIf
      Wend
    Else ; Reload probieren
      _ENM_Paket_TryReload()
    EndIf
  Until #True
 
  ResetList(*Paket\Pakets()) ; Liste auf anfang setzen
  FreeMemory(*MemBase) ; Speicher freigebn
 
  ProcedureReturn *Paket ; Pakete zurückgeben
EndProcedure



Ich kann den Fehler hier nicht reproduzieren aber wie gesagt, ich hab auch keinen Debian 5 Server :P

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Easy Network Manager [Include]
BeitragVerfasst: 31.01.2011 15:14 
Offline

Registriert: 30.08.2004 09:05
Wohnort: Heidelberg
Geht leider auch nicht.
Der Debian Server ist im internet.
Ich werde mir ein Virtual PC einrichten umd das besser testen zu können.

_________________
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Easy Network Manager [Include]
BeitragVerfasst: 31.01.2011 15:18 
Offline
Benutzeravatar

Registriert: 26.06.2008 10:42
Andreas21 hat geschrieben:
Geht leider auch nicht.
Der Debian Server ist im internet.
Ich werde mir ein Virtual PC einrichten umd das besser testen zu können.


Ich überprüfe das ganze auch gerade. Ich habe ein paar Probleme festgestellt wenn mehrere Verbindungen zu einem Server in einem Programm laufen. Teiweise bleibt das Programm bei ReceiveNetworkData() (nicht bei meinem abstahierten aus SafeNetwork.pbi sonder beim orginal PB!) stehen ... . Ich bleib da dran.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Easy Network Manager [Include]
BeitragVerfasst: 31.01.2011 17:48 
Offline
Benutzeravatar

Registriert: 26.06.2008 10:42
Gelöst. Lag an der massiven Parallelisierung, ein Thread hat eine lokale Kopie der Client-Liste erstellt und so ein paar ungültige Einträge abgearbeitet. Probleme lagen alleine am Client-Teil, der Server lief und läuft total stabil, was ja eigentlich das wichtigste ist :D

Es gibt noch einen kleinen Bug das das komplette De Initialisieren des Managers beim Client - Teil stehen bleiben kann, aber das ist kein Major-Bug und das werde ich auch noch demnächst beheben.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Easy Network Manager [Include]
BeitragVerfasst: 31.01.2011 19:05 
Offline

Registriert: 30.08.2004 09:05
Wohnort: Heidelberg
ok :) ich teste es nacher.

edit:
Jetzt leuft :) Danke.

_________________
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Easy Network Manager [Include]
BeitragVerfasst: 01.02.2011 09:42 
Offline
Benutzeravatar

Registriert: 22.10.2004 07:20
Wohnort: Erfurt
Moin.

So, bin nun endlich auch mal zum Testen gekommen.
Auf Windows Systemen läuft es bis jetzt ziemlich gut (Linux kann ich leider nicht testen). :allright:

Client: Windows 7 (32 Bit)
Server: Windows Server 2003

Gruß, Morty

_________________
KeItSi - kostenlose CRM Software auf www.keitsi.de

Meine Musik auf YouTube

Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Easy Network Manager [Include]
BeitragVerfasst: 01.02.2011 10:57 
Offline
Benutzeravatar

Registriert: 26.06.2008 10:42
Schön das es jetzt bei euch beiden funktioniert :D
Hat es sonst jemand getestet und hat Probleme festgestellt, bzw. funktioniert alles?

Ich hab den Source noch ein wenig optimiert, bzw. ein wenig an der Stabilität gearbeitet. Die lange Verzögerung beim Beenden die zeitweise beim Client-Teil auftreten kann ist fast komplett beseitigt. Ich teste das ganze noch ausführlich bis heute Abend und dann gebe ich die neue Version frei :)

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Easy Network Manager [Include]
BeitragVerfasst: 02.02.2011 11:16 
Offline
Benutzeravatar

Registriert: 26.06.2008 10:42
So ... Update ist online.

Die an der Stabilität und Performance wurde einiges getan! Auch die Parallelisierung wurde weiter verbessert. Zudem Ist ein ThreadSleep - Modus eingebaut worden der Threads nach einer gewissen Zeit der Inaktivität schlafen legt um Ressourcen für andere Threads freizugeben.

In der ENM.pbi gibt es nun im Header einige gut dokumentierte Konstanten mit denen das Verhalten des ENM beeinflusst werden kann.
ENM_CommandDescription.pbi wurde angepasst und um fehlende Funktionen/Parameter erweitert.

Kritik, Bugs, Anregungen usw. bitte hier posten :)

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


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 149 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4, 5 ... 15  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 14 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye