Russian Qt Forum
Ноябрь 23, 2024, 14:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Непрерывный поток данных ? QTcpSocket  (Прочитано 4857 раз)
Ubuntu_linux
Гость
« : Январь 06, 2011, 19:54 »

Есть клиент (Nokia 5800) и сервер (комп). http://www.prog.org.ru/index.php?topic=16258.msg108166#msg108166
При передаче информации с клиента на сервер дискретными сообщениями получается уменьшить задержку между двома сообщениями до 63 мили секунд. Но для полного счастья мне надо уменьшить задержку до 20 мс. По этому я хочу реализовать передачу непрерывным потоком данных. + потом можно будет на  реализовать потоки аудио и видео.


Вопрос:
Объясните как мне организовать непрерывный поток данных?

« Последнее редактирование: Январь 06, 2011, 23:16 от Ubuntu_linux » Записан
Ubuntu_linux
Гость
« Ответ #1 : Январь 06, 2011, 23:16 »

Накидал вот такой алгоритм создания непрерывного потока.
Имеет ли он право на жизнь?  Непонимающий

Код
C++ (Qt)
QTcpSocket *tcpSocket=new QTcpSocket;
 
/* here connect to server */
 
   QBuffer *buffer=new QBuffer;
   buffer->open(QIODevice::Append); /// my buffer for write and send to client/server
 
   QByteArray block; /// my tmp data for write (append) to buffer
   QDataStream bout(&block,QIODevice::ReadWrite);
 
   /// operation witch block (add new data)
   /*
     ADD NEW DATA TO BLOCK HERE
     */

 
   buffer->write(block); /// append (write) my data to buffer
 
 
   //buffer->
 
   /// now i send buffer to client/server on second thread
 
   tcpSocket->write(buffer->buffer());
 
   /// reset buffer
qint64 maxBufferSize=10000; //set maximum buffer size
   if(buffer->size()==maxBufferSize){
   buffer->seek(0); /// go to start point
   }//if
« Последнее редактирование: Январь 06, 2011, 23:20 от Ubuntu_linux » Записан
twp
Гость
« Ответ #2 : Январь 07, 2011, 19:22 »

попробуй еще отключить алгоритм Нейгла QAbstractSocket::LowDelayOption http://doc.qt.nokia.com/latest/qabstractsocket.html#SocketOption-enum
ну и еще всякие ухищрения, например записывать большие блоки данных. почитать об этом можно например тут http://www.infocentr.ru/~bugaga/tcpip/index.html
« Последнее редактирование: Январь 07, 2011, 19:29 от twp » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.124 секунд. Запросов: 20.