Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Внутренний буффер открытых сокетов, как почистить его не читая оттуда 
V
    Опции темы
null56
Дата 14.2.2009, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



В общем изложу суть того, чего хочу добиться...
На серверной стороне имеется открытый сокет QSslSocket, который появился от QTcpServer, когда произошел коннект со стороны клиента. После того, как на серверной стороне создался объект, я запускаю шифрование startServerEncryption(). Но, если на другой стороне сидит неизвестный и не знает, что идет соединение по шифрванному каналу, он может не ждать начала шифрованного соединения с сервером и сразу посылать данные.
Если я правильно понимаю работу сокетов в qt, то в операционной системе, под сокет выделяется буфер, который наполняется данными от клиента средствами самой оси, после чего происходит сигнал readyRead.
Так вот, на серверной стороне состояние сокета помечено, как UnEncrypt и если приходят данные в этот буфер и генериться сигнал readyRead, мне бы хотелось этот буфер очищать, но не уничтожать сокет

Вопрос
Возможно ли такое сделать средствами qt?

ЗЫ: вопрос своевременного вышибания неизвестного злоумышленника решается по таймеру, здесь меня конкретно интересует очистка внутреннего буфера

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


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Выстави буффер нужного тебе размера, если боишься, что заддосят. Потом просто читай данные во временный QByteBuffer, который будет уничтожаться при выходе из слота, если state не тот который нужен. seek() работать не будет для sequential device, а сокет им является.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
null56
Дата 14.2.2009, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



а что будет проиходить, если клиент на той стороне будет пытаться послать больше данных, чем размер выставленного мной буфера... Просто чтение будет происходить не сразу на стороне сервера

Это сообщение отредактировал(а) null56 - 14.2.2009, 16:11
PM MAIL   Вверх
null56
Дата 17.2.2009, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



ладно, это экспериментами проще проверить....

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

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

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


 




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


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

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