crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Передача клиенту бинарных данных через TCP
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
ssoft Дата 19.9.2011, 8:46
  Нажимае кнопку "Спасибо"
:hi:
Гость Дата 15.9.2011, 8:30
  Спасибо
ssoft Дата 14.9.2011, 12:41
 
Цитата(Гость_Андрей_* @ 13.9.2011, 12:52) *
Как передать ветктор данных double через TcpSocket, если на приемная сторона принимает следующим образом
sokstream->Read(&ChisloElement,sizeof(double));
sokstream->Read(&dTemp[0],(int)(ChisloElement*sizeof(double)));


Наверное приемная сторона принимает так

sokstream->Read(&ChisloElement,sizeof(int));
sokstream->Read(&dTemp[0],(int)(ChisloElement*sizeof(double)));

В данном случае, можно

QTcpSocket * socket;
QVector< double > array;

...

QDataStream stream (socket);
// возможно, нужно сменить порядок байт
//по умолчанию Qt использует BigEndian
stream.setByteOrder( LittleEndian ); // нужно знать порядок байт принимающей стороны, здесь принимается LittleEndian
stream << array;


либо, если так не прокатит, то можно записать напрямую (что не очень хорошо), без использования QDataStream.

int count = array.count();
socket->write( &count, sizeof( count ) );
socket->write( array.constData(), count * sizeof( double ) );
Гость_Андрей_* Дата 13.9.2011, 11:52
  Как передать ветктор данных double через TcpSocket, если на приемная сторона принимает следующим образом
sokstream->Read(&ChisloElement,sizeof(double));
sokstream->Read(&dTemp[0],(int)(ChisloElement*sizeof(double)));

Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 13.7.2020, 12:07