У меня есть проект Qt, работающий в Windows, действующий как сервер. (5.9 на 32b MSVC2015, мы также строим для Ubuntu, но пока не увидели эту проблему). Многие сотни сокетов TCP / IP приходят и уходят на машину с обычными, хорошо работающими сокетами. Программное обеспечение для подключения, используемое удаленными сторонами, находится вне нашего контроля. В то время как большая часть этого хорошо сформирована, часть - нет. У нас есть один пользовательский агент, которому удается подключиться, а затем неправильно отсоединиться, оставив сокет открытым в состоянии FIN-WAIT-1. Фактически они могут оставить сотни розеток открытыми таким образом, когда они повторяют попытку.
На стороне Qt мы сбросили соединение с вызовом abort () в сокете перед его удалением. [close () также пытался, без разницы] Но входящее соединение остается в состоянии FIN-WAIT-1 навсегда, а не надежный долгосрочный ответ.
Есть ли способ из приложения Qt убрать их? Я не вижу вызовов более низкого уровня, которые могли бы помочь с этим. [Кроме того, сейчас мы просто используем популярный инструмент cports.exe, чтобы удалить их вручную.]