QTcpServer вылетает при закрытии

Я программировал сервер, я программировал сервис и менеджера. Когда я останавливаю сервер с помощью UI Server Manager, сервер вызывает функцию «stopServer ()», которая содержит следующее:

qDebug() << "Stopping the server...";
// Clear the vector and free the memory by deleting pointers
qDebug() << clients.size();
for(int i=0;i<clients.size();i++){
clients.get(i)->getSocket()->flush();
clients.get(i)->getSocket()->close();
clients.get(i)->getSocket()->disconnectFromHost();
clients.get(i)->getSocket()->waitForDisconnected(3);
}
clients.destroy();
// Close the server
socket_server->close();
// Stop the handler
qDebug() << "Stopped.";

Фактически, эта переменная «клиенты» — это только вектор, содержащий пользовательские данные, он закрывает QTcpSocket для каждого соединения, а затем очищает переменную клиентов и сбрасывает ее в 0.

Когда у меня есть одно соединение на сервере (UI Manager работает как одно из этих соединений), и я пытаюсь остановить его, оно терпит неудачу. Я удалил эту векторную систему. И это все еще не работает, это не дает мне никакой ошибки, просто вылетает приложение.

Если вам нужен весь код, просто скажите мне!

(Извините за мой плохой английский…)

Обновление: если я удаляю «socket_server-> close ()», он работает без проблем.
Обновление № 2: Кажется, это проблема удаления указателя. ИДК ….

РЕШЕНО: Боже, я был тупым! socket_server был нулевым указателем … Я только что исправил это, и все!

0

Решение

Боже, я был тупым! socket_server был нулевым указателем … Я только что исправил это, и все!

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]