Название: отключение от QTcpServer Отправлено: ilyagoo от Октябрь 21, 2008, 09:09 Сервер на одном компе, клиенты на другом. Как отследить отключение клиентов от сервера с помощью QTcpServer без использования таймера (по таймеру можно было бы отслеживать количество подключений)? Клиенты - QTcpSocket.
Название: Re: отключение от QTcpServer Отправлено: Rcus от Октябрь 21, 2008, 09:46 http://doc.trolltech.com/4.4/qabstractsocket.html#disconnected
Цитировать void QAbstractSocket::disconnected () [signal] This signal is emitted when the socket has been disconnected. Название: Re: отключение от QTcpServer Отправлено: IMPOMEZIA от Октябрь 21, 2008, 15:11 Можно долго ждать:
void QAbstractSocket::disconnected () если клиент отключился каким-нибуть неправильным способом, например методом выдёргивания сетевого кабеля или переходом в ждущий режим. Название: Re: отключение от QTcpServer Отправлено: ilyagoo от Октябрь 21, 2008, 15:13 Цитировать This signal is emitted when the socket has been disconnected. Сокет-то понятно как узнает об отключении сервера, а вот как узнает об этом сервер???Название: Re: отключение от QTcpServer Отправлено: Rcus от Октябрь 21, 2008, 15:50 QTcpServer разделяет соединения через
Цитировать QTcpSocket * QTcpServer::nextPendingConnection () [virtual] действительно, сам он не узнает :)Returns the next pending connection as a connected QTcpSocket object. Название: Re: отключение от QTcpServer Отправлено: Admin от Октябрь 21, 2008, 17:55 в веб серверах
1) если клиент не прислал данные в течении timeout, удаляем клиента 2) keep-alive - клиент посылает каждый минуту маленький пакетик Название: Re: отключение от QTcpServer Отправлено: ilyagoo от Октябрь 22, 2008, 12:06 Кстати, еще один вопрос.
В примерах к Qt есть некий chat. Это приблизительно то, что мне нужно, но... Я запускаю его на разных машинах и вижу следующий результат: в линухе он видит себя и остальные запущенные экземпляры под любой осью, в виндах он видит себя и все линуксовые экземпляры, но не видит ни одного из запущенных на машинах под виндами. винды в домене, перевод в рабочую группу не помогает. брандмауэр отключен. что не так? |