crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

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


Последние 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 Рейтинг@Mail.ru Текстовая версия Сейчас: 10.7.2025, 21:18