2010-06-23 10 views
2

Existe-t-il un moyen de supprimer une connexion existante?Terminer la connexion tcp existante

Par exemple, 192.168.1.120 est connecté à être via le port 8080.

Je voudrais savoir comment mettre fin à cet égard?

Merci beaucoup!

+0

Est-ce une connexion de l'intérieur de votre programme à quelque chose d'autre, ou une connexion à une socket serveur de votre programme, ou une connexion complètement externe entre d'autres programmes? – sje397

+0

@ sje397 C'est une connexion externe faite par d'autres programmes. – user303907

+0

Sur Linux, vous pouvez utiliser killcx. Voir ma réponse à "[Comment fermer de force une socket dans TIME_WAIT?]" [1] " [1]: http://stackoverflow.com/questions/41602/how-to-for-close-a- socket-in-time-wait/7946580 # 7946580 – akostadinov

Répondre

2

Le moyen le plus simple (sans logiciel externe) est de tuer et/ou de redémarrer le processus qui surveille ce port. Cela va tuer toutes les connexions utilisées par ce processus, donc ce n'est pas quelque chose que vous voulez normalement faire sur un serveur.

Pour savoir quel processus gère la connexion de votre côté, vous pouvez indiquer netstat -anp sous Linux ou netstat -anb sous Windows. Remarque: dans Windows, netstat peut être assez lent à revenir en arrière d'un socket à un processus.

Si vous utilisez Windows, et ne vous dérange pas de télécharger quelque chose, consultez TCPView de SysInternals. Vous permet de voir quels ports sont ouverts, et ce qui les utilise. Il peut même tuer des connexions, IIRC, bien que j'oublie si c'est en réinitialisant simplement la connexion ou en tuant le processus l'employant.

Questions connexes