В моем приложении Qt я запускаю внешний исполняемый файл в отдельном процессе, подобном этому:
QProcess *server = new QProcess();
server->start("./server.exe");
Внешний исполняемый файл запускает сервер на 127.0.0.1
, прослушивая порт 18383
.
Затем в какой-то момент я завершаю процесс следующим образом:
server->terminate();
Проблема заключается в том, что при завершении процесса сервера его используемый порт много раз, т. Е. 18383
, остается открытым.Следовательно, когда я пытаюсь запустить сервер снова, я получаю следующие ошибки:
"Сервер -2 Не удалось настроить сервер. Listen tcp: 18383: bind: Только одно использование каждого адреса сокета (протокол/ сетевой адрес / порт) обычно разрешен.
Как я могу завершить процесс и закрыть все его открытые порты прослушивания?