Detaillierte Socket-Infos holen
-
Hallo,
eine TCP-Verbindung kann man ja via Wireshark monitoren sofern sie übers Netz geht. Ist die Verbindung aber zwischen zwei Apps auf demselben Rechner geht das aber nicht, weil WinPCap die Pakete wohl nicht zu sehen bekommt.Gibt es via Win-API irgendwi eine Möglichkeit, an Verbindungsdaten wie z.B. Window-Size (und anderes) ranzukommen? Ich hab was gefunden, um an "einfache" Infos ranzukommen, wie z.B. Endpunkte, Socket-Besitzer (PMIB_TCPEXTABLE). Das reicht mir aber nicht.
Hintergrund: manchmal scheint eine Clientapp mit dem Server nicht mehr zu kommunizieren. Ich wollte eben mittels Socket-internen Infos versuchen, das Problem einzukreisen.
-
dadiduck schrieb:
an Verbindungsdaten wie z.B. Window-Size
Bahnhof ?!?
-
Vielleicht geben einige der Sysinternals Tools ein wenig Auskunft.
-
Sysinternals war schon meine erste Anlaufstelle - leider erfolglos.
-
@Bahnhof0815
Vermutlich ist die Receive-Window-Size gemeint.
https://en.wikipedia.org/wiki/TCP_tuning#Window_sizedadiduck schrieb:
Hintergrund: manchmal scheint eine Clientapp mit dem Server nicht mehr zu kommunizieren. Ich wollte eben mittels Socket-internen Infos versuchen, das Problem einzukreisen.
Wenns ne lokale Socket-Verbindung ist, dann kann das Problem mMn. eigentlich nur sein dass dein Client-Code Mist baut. (Oder der Server-Code, aber so wie du es formuliert hast gehe ich davon aus, dass du davon ausgehst, dass es sicher nicht am Server liegt.)
Zumindest wäre mir nix bekannt dass Windows bei lokalen Socket Verbindungen beschliesst diese einfach zu "kappen".
Bei Verbindungen übers Internet kann das allerdings schnell passieren, braucht bloss irgendwo ein Router/Gateway dazwischen sein das ein nicht-ewig-langes Timeout hat - wenn dann ne Zeit lang in beide Richtungen nix drüber geht ist schwupps die Verbindung tot.
D.h. dein Server sollte sowieso damit klarkommen dass Verbindungen einfach "einschlafen", und dann ggf. nach einem angebrachten Timeout selbst die Verbindung trennen.----
Nochmal zurück zur Fehlersuche/deiner Frage...
Die Chance den genauen Fehler mittels irgendwelcher Informationen über den Socket einzukreisen würde ich eher gering einschätzen.
Wenn du den Fehler nachstellen kannst, und meinst dass Wireshark & Co dich weiterbringen würden, dann kannst du ja mal versuchen die Verbindung über's Netzwerk laufen zu lassen, so dass du eben wirklich Wireshark verwenden kannst.
-
Hallo, ja, ich werde beide Apps auf verschiedenen Rechnern laufen lassen. Vielleicht komme ich mit WS irgendwie weiter.
Danke zunächst an alle!
-
via Wireshark
hoffe hilft dir weieter. ..bin kein netzwerk spezi.:
https://www.codeproject.com/articles/19426/creating-your-own-custom-wireshark-dissector
http://www.binarytides.com/code-a-simple-socket-client-class-in-c/https://www.codeproject.com/tips/819121/how-to-capture-and-view-local-network-traffic
http://www.gamedev.net/topic/637746-networking-c-dont-see-the-packet-in-wireshark/...ansonsten ignor.
-
[url]http://members.inode.at/anton.zechner/az/NetStatEx.htm[url]
[url]http://members.inode.at/anton.zechner/az/index.html[url]
-
http://members.inode.at/anton.zechner/az/NetStatEx.htm
http://members.inode.at/anton.zechner/az/index.html
-
Oha, hallo AZ!!
Meine Frage ist zwar schon etwas "alt", aber vielen Dank für Deinen Link!
Sind manch interessante Dinge dort zu finden