Justin86 Geschrieben 23. Juli 2010 Teilen Geschrieben 23. Juli 2010 Hallo, Ich bräuchte mal Idee und Anregungen für folgendes Problem: Ich habe ein Programm geschrieben, welches den TCP_verkehr eines Servers überwacht und auswertet. In meiner lokalen Version , mit mir als einzigem Nutzer, war das alles während der Laufzeit zu schaffen, ohne Probleme. Da das Programm allerdings auf einem Server liegt über den wirklich Massig Verkehr drüber geht, gehen so ein haufen TCP-Packete verloren, sodass ich das Programm wohl 2-Teilen muss. Ich brauch also einen Teil welches wirklich nur dazu da ist die notwendigen Daten des TCP Verkehrs auszulesen und einen Teil welcher dafür verantwortlich ist diese Daten auszuwerten. Ich dachte also an einen FIFO(First In First Out ) Puffer, allerdings habe ich vorher noch nicht so wirklich mit so etwas zu tun gehabt. Die einfachste variante wäre wohl 2 parallel laufende Prozesse, der eine liest aus und schreibt in eine Datei, der andere liest aus der Datei aus , wertet aus und löscht die Daten aus der Datei. Aber solche schreib und lesezugriffe auf die Festplatte sind natürlich sehr zeitaufwendig, darum wollte ich mich hier einfach mal umhören ob sich eventuell jemand mti so etwas auskennt und eine herangehensweise bzw. eine bessere Idee dafür parat har. Vielen Dank Schonmal! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Pexo Geschrieben 23. Juli 2010 Teilen Geschrieben 23. Juli 2010 Ähhm also wenn ich (was wohl sehr unwarscheinlich ist) das Problem welches dich plagt richtig verstehe dann würde ich die zum schreiben / auslesen verwendeten Klassen nach benutzung löschen und beim nächsten schleifendurchauf wieder neu erstellen. Das erspart dir dann die leaks. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Justin86 Geschrieben 24. Juli 2010 Autor Teilen Geschrieben 24. Juli 2010 Das Mach ich schon, also das Problem nochmal zusammengefasst: Es kommen so viele Daten von Außen, dass das Programm nicht alle zur Laufzeit bearbeiten kann und so einige verloren gehen, also müsste ich diese wohl irgendwo zwischenspeichern. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Pexo Geschrieben 24. Juli 2010 Teilen Geschrieben 24. Juli 2010 Um es auf den Punkt zu bringen hast du also sone art variablen overload. Und was machst du wenn du eine Nachkomma stelle anzeigen willst welche 11 stellig ist? Genau, du brauchst eine 2te Variable. Ich denke das könnte man jetzt auch gut auf dein Problem übertragen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Eleu Geschrieben 25. Juli 2010 Teilen Geschrieben 25. Juli 2010 (bearbeitet) Hi, könntest Du die Aufzeichnung nicht von "wireshark" machen lassen (wireshark kostet nichts). Die aufgezeichneten Daten von wireshark landen in der Datei "etherXXXXa04424" Guck mal in wireshark unter "File/File set/List Files" DÃese Datei könntest Du zur Laufzeit mit deinem Programm öffnen und auslesen. Ich weiss ja nicht, was Du da genau überwachst und auswertest. Mit "wireshark" kannst du ja bestimmten Datenverkehr filtern. Auch könntest Du mehrere Tasks von "wireshark" laufen lassen. (Die zweite Datei heißt dann z.B.: "etherXXXXa03108") Wenn "wireshark" beendet wird, löscht "wireshark" diese Datei Vielleicht eine Anregung. Hier noch eine weitere Variante der Netzwerkaufzeichnung und diverse Infos: Microsoft Network Monitor :: network lab Gruß Eleu Bearbeitet 25. Juli 2010 von Eleu Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.