Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Не отрабатывает setReadBufferSize(qint64 size)


Автор: null56 31.7.2009, 23:39
не могу понять, .чего делаю неправильно или чего непонимаю
задаю небольшой размер буфера, дабы лишить пользователя пересылать большие объемы данных
Код

m_Socket->setReadBufferSize(15);


c клиента шлю заведомо большие объемы данных

в eventloop в слоте по таймеру, проверяю имеющиеся данные 
Код

                qDebug("Socket buffer size: %d", m_Socket->readBufferSize() );
                qDebug("Size: %d", m_Socket->bytesAvailable());
//-
                QByteArray arr = m_Socket->readLine();
                qDebug("%s", arr.constData());
                qDebug("Size: %d", m_Socket->bytesAvailable());


вывод в консоль огорчает
Цитата

Socket buffer size: 15
Size: 78
PREVED SERVER!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!X
Size: 0


Почему так происходит? разьве не должен блокироваться лишний объем?
Заранее благодарен за помощь, всем откликнувшимся

Добавлено через 2 минуты и 4 секунды
вроде для этого тролли и делали эту функцию
Цитата

This option is useful if you only read the data at certain points in time (e.g., in a real-time streaming application) or if you want to protect your socket against receiving too much data, which may eventually cause your application to run out of memory.

Автор: SABROG 1.8.2009, 10:11
А ты используешь QSslSocket? Если да, то у него минимальный размер буфера 1024.

Автор: null56 1.8.2009, 13:03
SABROG, спасибо большое, не знал

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)