@kodwi
https://moikrug.ru/kodwi

Как сразу полностью закрыть сокет у TcpClient, без таймаута и освободить порт в системе?

TcpClient server = new TcpClient();
server.Client.LingerState = new LingerOption(false, 0);
server.NoDelay = true;
....
server.Client.Shutdown(SocketShutdown.Both);
server.Close();
server = null;


И после этого все равно в течение примерно 30-ти секунд netstat показывает TIMEW по тому порту, который использовался tcp клиентом, и невозможно подключиться. Но при этом если приложение сразу закрыть, то становится возможно снова подключиться по этому порту, без таймаута.

Как я понял, соединение рвется, но система все равно держит порт в течение таймаута. Как сказать системе, чтобы сразу освобождала порт?

P.S. ОС Windows 10.
  • Вопрос задан
  • 795 просмотров
Пригласить эксперта
Ответы на вопрос 1
Nipheris
@Nipheris Куратор тега C#
по тому порту, который использовался tcp клиентом

возможно снова подключиться по этому порту, без таймаута.


Я вообще не пойму что вы делаете. Вы указываете фиксированный номер клиентского порта? Как и зачем?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы