@kaka888
C, C++, Qt, Python Flask, MySQL, Lua

Почему не работает sender() сигнала disconnected в QTcpSocket?

Пишу сервер и клиент на Qt, протокол TCP.

Сервер хранит в QVector сокеты всех подключенных клиентов (QVector).
Если закрыть окно одного из клиентов, то на сервере срабатывает сигнал QTcpSocket::disconnected, который вызывает привязанную функцию. В этой функции я вызываю sender, чтобы получить сокет отключенного клиента (чтобы найти его в векторе и удалить):
QTcpSocket *client = qobject_cast<QTcpSocket*>(sender())

При попытке вызвать любой метод сокета client я получаю аварийное завершение программы (Segmentation fault), то есть sender() даёт мне пустой указатель. Что за фигня? Как мне удалять сокеты отключенных клиентов из вектора?
  • Вопрос задан
  • 133 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы