В настоящее время я разрабатываю приложение для Android, которое подключается к серверу через TCP.Сервер написан на Qt и работает на компьютере.
На стороне сервера я использую QTcpServer
и сигнал QTcpServer::newConnection()
, чтобы получить QTcpSocket
, вновь подключенный к QTcpServer::nextPendingConnection()
.Я реализовал класс под названием SocketManager
, который управляет данными, полученными этим сокетом.
На стороне Android я использую java Socket для подключения к серверу.
Все отлично работает.Когда сторона Android отключается от сервера, мой SocketManager
объект хорошо уведомляется и разрушается.Но я бы хотел правильно управлять случаем, когда, например, устройство Android переходит в автономный режим или выключается.В этом случае я не уведомлен об отключении Android.Я подключаю эти сигналы моего QTcpSocket
:
QAbstractSocket::disconnected()
, QAbstractSocket::stateChanged(QAbstractSocket::SocketState)
QAbstractSocket::error(QAbstractSocket::SocketError)
QObject::destroyed(QObject*)
думая, что, возможно, QTcpSocket внутренне уничтожен QTcpServer.
Но сигнал не поступает, когда устройство Android отключается или выключается.
Когда QTcpSocket будет выпущен QTcpServer
?Только когда розетка явно отключена?Так что в моем случае, он никогда не будет уничтожен?Должен ли я управлять отключением во всех случаях на стороне Android?
Спасибо всем.