Поиск:

Ответ в темуСоздание новой темы Создание опроса
> QSslSocket подтверждение отправки данных, как можно убиться, что данные дошли 
:(
    Опции темы
null56
Дата 16.8.2009, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 721
Регистрация: 19.3.2008

Репутация: 6
Всего: 12



Задача: отправить готовое сообщение от сервера к клиенту и убиться в том, что оно дошло до клиента
Как это выглядит: сервер формирует сообщения и сохраняет у себя в каком - либо буфере, затем отправляет пользователю
Чего я хочу: хочу удалять это сообщение только тогда, когда буду увеждён в том, что оно дошло до клиента. Я понимаю, что можно сделать дополнительные сообщения в протоколе и клиент сможет присылать сообщения подтверждения о том, что получил то или иное сообщение... НО
Я знаю точно, что это должен делать Tcp/Ip.
То есть задача уже сводится к: как записывая данные в сокет узнать спустя время, что эти данные дошли до адресата целиком средствами Tcp/Ip?
Что я нашел: 
Код

qint64 QSslSocket::encryptedBytesToWrite () const

Returns the number of encrypted bytes that are waiting to be written to the network.

то есть пока там есть данные, значит они ТОЧНО еще не дошли до адресата, значит сообщение еще отправлено не донца...
Замечу сразу, что меня не интересует валидный ли сокет или нет, мне интересно, гарантированно ли дошло сообщение до клиента

Вопрос: прав ли я? и какие альтернативные способы сущестуют, чтобы убедиться в валидной достапке сообщения средствами протокола Tcp/Ip

Заранее благодарен за помощь
PM MAIL   Вверх
null56
Дата 18.8.2009, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 721
Регистрация: 19.3.2008

Репутация: 6
Всего: 12



на счет шифрованнных доступных данных я не уверен, а вот это выглядит более достоверно
Код

virtual qint64 bytesToWrite () const

Цитата

The bytesWritten() signal is emitted when data has been written to the socket (i.e., when the client has read the data). Note that Qt does not limit the write buffer size. You can monitor its size by listening to this signal.

а в слоте этого сигнала, можно проверить byteToWrite... хотя в любом случае надо ставить эксперименты...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0378 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.