Название: Как отследить, какй QTcpSocket закрылся? Отправлено: Примерный ученик от Март 24, 2013, 16:30 QTcpServer создает по мере подключения массив наследников QTcpSocket. Как отслеживать завершившие работу подключения, что бы на их место размещать новые?
Название: Re: Как отследить, какй QTcpSocket закрылся? Отправлено: gil9red от Март 24, 2013, 23:44 отлавливайте сигналы)
сигналы: void connected () void disconnected () Название: Re: Как отследить, какй QTcpSocket закрылся? Отправлено: Примерный ученик от Март 25, 2013, 09:02 если соединить disconnected() QTcpSocket cо слотом QTcpServer, то как передать НОМЕР именно этого сокета? Сигнал disconnected() не передает параметров слоту ???
Название: Re: Как отследить, какй QTcpSocket закрылся? Отправлено: RedDog от Март 25, 2013, 09:04 Хранить массив подконнекченных сокетов (в мапе - ключ- указатель на сокет, значение - номер или адрес) а в слоте по sendr()-у из мапы доставать.
Название: Re: Как отследить, какй QTcpSocket закрылся? Отправлено: Примерный ученик от Март 25, 2013, 09:15 спасибо, понял, то что надо
Название: Re: Как отследить, какй QTcpSocket закрылся? Отправлено: Примерный ученик от Март 25, 2013, 09:35 Код: connect( myClient[j], SIGNAL( disconnected()), this, SLOT(clientDisconnect())); что то не понял, как мне в clientDisconnect() определить указатель на отправитель сигнала, если нет передаваемого параметра? Название: Re: Как отследить, какй QTcpSocket закрылся? Отправлено: RedDog от Март 25, 2013, 09:44 ну sender() же (выше писалось), выдает указатель на QObject и через qobject_cast привести его к QTcpSocket*
хотя последнее возможно и лишнее Название: Re: Как отследить, какй QTcpSocket закрылся? Отправлено: Примерный ученик от Март 25, 2013, 09:49 Код: void loadServer::clientDisconnect() как там sender определить? Ну не понимаю ??? Название: Re: Как отследить, какй QTcpSocket закрылся? Отправлено: RedDog от Март 25, 2013, 09:52 Код: void loadServer::clientDisconnect() Название: Re: Как отследить, какй QTcpSocket закрылся? Отправлено: Примерный ученик от Март 25, 2013, 09:58 спасибо, не знал ::)
Название: Re: Как отследить, какй QTcpSocket закрылся? Отправлено: Примерный ученик от Март 25, 2013, 12:30 Код: void loadServer::clientDisconnect() Идентифицирует правильно, но после удаления подключения валится на Код: void QHostAddressPrivate::clear() Чего я не учитываю? Название: Re: Как отследить, какй QTcpSocket закрылся? Отправлено: RedDog от Март 25, 2013, 12:33 Код: myClient[i]->deleteLater(); Название: Re: Как отследить, какй QTcpSocket закрылся? Отправлено: Примерный ученик от Март 25, 2013, 12:52 спасибо, помогло ::)
|