#.net #sockets #powershell #tcp
#.net #сокеты #powershell #tcp
Вопрос:
Метод .Net [Net.NetworkInformation.IPGlobalProperties]::GetIPGlobalProperties().GetActiveTcpConnections()
делает именно то, что он говорит; он получает все активные TCP-соединения. Кто-нибудь знает a .Метод класса Net, который может быть вызван для прерывания открытого TCP-соединения?
Ответ №1:
Вы не можете закрыть TCP-сокеты из .NET. Попробуйте вместо этого использовать бесплатный инструмент Tcpview. Это может показать открытые соединения и позволит вам отключить любое открытое соединение.
Ответ №2:
Как указывает x0n, для программного управления TCP-соединениями вам нужны классы, предоставляемые System.Net.Sockets
namespace. Для отключения от удаленных конечных точек требуется BeginDisconnect.
Редактировать
Однако вы сможете отключать соединения конечных точек только для сокетов, которые вы явно создали с помощью Socket
класса. Следовательно, вы не сможете отключить конечные точки, просто собирая ip из NetworkInformation
.
Комментарии:
1. Вы уверены, что нет способа? Я не эксперт в этом, но, судя по документации Mircosoft, это возможно.
2. Вы не можете использовать ни один из классов в пространстве имен сокетов, чтобы закрыть любой сокет TCP. Только те, которые вы создали самостоятельно.
3. Теперь я понимаю. Прошу прощения за недоразумение. Я обновил ответ, дающий (надеюсь) более правильное объяснение. Спасибо