Закрыть открытое соединение TCP IP с помощью .NET

#.net #sockets #powershell #tcp

#.net #сокеты #powershell #tcp

Вопрос:

Метод .Net [Net.NetworkInformation.IPGlobalProperties]::GetIPGlobalProperties().GetActiveTcpConnections() делает именно то, что он говорит; он получает все активные TCP-соединения. Кто-нибудь знает a .Метод класса Net, который может быть вызван для прерывания открытого TCP-соединения?

Ответ №1:

Вы не можете закрыть TCP-сокеты из .NET. Попробуйте вместо этого использовать бесплатный инструмент Tcpview. Это может показать открытые соединения и позволит вам отключить любое открытое соединение.

http://technet.microsoft.com/en-us/sysinternals/bb897437

Ответ №2:

Как указывает x0n, для программного управления TCP-соединениями вам нужны классы, предоставляемые System.Net.Sockets namespace. Для отключения от удаленных конечных точек требуется BeginDisconnect.


Редактировать

Однако вы сможете отключать соединения конечных точек только для сокетов, которые вы явно создали с помощью Socket класса. Следовательно, вы не сможете отключить конечные точки, просто собирая ip из NetworkInformation .

Комментарии:

1. Вы уверены, что нет способа? Я не эксперт в этом, но, судя по документации Mircosoft, это возможно.

2. Вы не можете использовать ни один из классов в пространстве имен сокетов, чтобы закрыть любой сокет TCP. Только те, которые вы создали самостоятельно.

3. Теперь я понимаю. Прошу прощения за недоразумение. Я обновил ответ, дающий (надеюсь) более правильное объяснение. Спасибо