Ich verwende beyondtv link auf xp und verbinde mich mit beyondtv, einem Vista-Host. Das Link-Programm hängt nach ungefähr 20 Minuten, und ich habe keine Lösung dafür. Wenn dies unter Verwendung von tcpview geschieht, sehe ich, dass der Host noch ungefähr 200 Zombie-TCP-Verbindungen von der Link-Verbindung übrig hat. Ich kann sie nicht löschen, sie stammen aus demselben nicht existierenden Prozess. Die Verbindungen bleiben bestehen, bis ich den Host neu starte. Ein Neustart ist die einzige Möglichkeit, die Verbindung zu beyondtv Link wiederherzustellen. Ich denke, es gibt einen Fehler in beyondtv, der dies verursacht, aber ich kann keine Antworten in ihren Foren bekommen. Aber auf jeden Fall würde ich gerne wissen, ob es einen Weg gibt, all diese Verbindungen zu beenden.
Bearbeiten: Es sind ungefähr 3000 WAIT_CLOSE-Verbindungen, die sich nach ungefähr 40 Minuten ansammeln, und ungefähr dann stirbt der Client. Wenn ich die Server-App schließe, werden alle diese Sockets in tcpview als Eigentum eines nicht vorhandenen Prozesses angezeigt. Verständlich. Aber gibt es keine Möglichkeit, sie zu schließen, ohne neu zu starten?
quelle
Antworten:
Sie können Nirsofts Currports verwenden , um Verbindungen zu überwachen und zu beenden .
Sie können das Beenden eines Verbindungsmusters mit AutoHotKey automatisieren.
quelle
CLOSE_WAIT bedeutet, dass die Verbindung am anderen Ende geschlossen wurde.
Offensichtlich erkennt beyondtv diesen Zustand nicht und sendet weiterhin Daten an die Anwendung am anderen Ende. Das andere Ende kann über diese Verbindung nichts zurücksenden, da es das Ende der Verbindung geschlossen hat.
Die Lösung besteht darin, den Eintrag TcpTimedWaitDelay in festzulegen
Auf meinem Computer enthält dies standardmäßig den Wert -1. Dies bedeutet, dass geschlossene Verbindungen niemals freigegeben werden. Dies ist genau das Verhalten, das Sie beobachten.
Ich schlage vor, dass Sie den Wert dieses Eintrags im zulässigen Bereich von 30 bis 300 Sekunden einstellen. Ich nehme an, dass 300 Sekunden = 5 Minuten für Ihren Fall völlig ausreichend sind, wo es 40 Minuten dauert, um Ihren Computer einzufrieren.
quelle
TIME_WAIT
hat mich hierher gebracht. Danke für die Erklärung und den Link.Möglicherweise können Sie Windows zwingen, das Schließen aller TCP-Verbindungen zu erzwingen, indem Sie 1) Ihre Netzwerkschnittstelle deaktivieren und dann 2) wieder aktivieren . Wenn dies funktioniert, können Sie die Schritte, die bei Bedarf ausgeführt werden sollen, per Batch-Skript ausführen.
Ich habe nach einer Möglichkeit gesucht, dies über die Befehlszeile des
netsh
Dienstprogramms (oder ähnlichem) zu tun , aber bisher hatte ich kein Glück.Der beste Weg, dies zu beheben, ist natürlich, die fehlerhafte Anwendung zu beheben. Stellen Sie sicher, dass Sie die neueste Version der Anwendung ausprobieren. nervt die Entwickler weiter; Wenn Sie bereits die neueste Version haben, versuchen Sie, eine ältere Version des Programms zu finden.
quelle
Sie erhalten diese CLOSE_WAIT-Sitzungen wahrscheinlich, weil das Programm hängt - ich kann nicht sagen, ob Sie sie als Ursache vermuten, deshalb wollte ich das nur klarstellen.
Ich vermute, dass sie nicht für immer rumhängen werden; wahrscheinlich nur für 2 Stunden und 5 Sekunden. Kann wie für immer scheinen, ich weiß. Sie können versuchen, KeepAliveTime (erfordert wahrscheinlich einen letzten Neustart) für Ihre Netzwerkverbindung auf einen kleinen Wert von beispielsweise 5 Minuten zu optimieren . Das könnte ihnen helfen, schneller zu verschwinden, nachdem Ihr Programm hängt.
Wenn Sie wissen, dass Sie das Programm beispielsweise 10 Minuten lang zuverlässig ausführen können, können Sie es auch regelmäßig neu starten. Sie wissen nicht, ob eine dieser Lösungen für Ihre spezielle Situation nützlich ist. Ich stimme ~ quack zu, dass Sie die problematische App-Version so schnell wie möglich fallen lassen sollten.
quelle
Überprüfen Sie, ob beyondtv einen anderen Prozess erzeugt, der die Verbindungen offen hält. Der Prozess-Explorer zeigt Ihnen, ob dies geschieht.
quelle
Ist es möglich, dass ein Firewall-Problem vorliegt? Möglicherweise wird eine unvollständige Verbindung versucht und erneut versucht.
Ich würde alle Firewalls auf beiden Computern deaktivieren, und wenn es einen Router gibt, auch dessen interne Firewall.
quelle
Versuchen Sie es mit WinSock XP.
http://www.snapfiles.com/get/winsockxpfix.html
Ihre Verbindung wird verworfen und auf die Standardeinstellungen zurückgesetzt. Ich behalte dies immer auf einem USB-Stick, wenn alles andere fehlschlägt.
quelle