crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Передача клиенту бинарных данных через TCP
Гость_Гость_Андрей_*_*
сообщение 13.9.2011, 11:52
Сообщение #1





Гости








    


Как передать ветктор данных double через TcpSocket, если на приемная сторона принимает следующим образом
sokstream->Read(&ChisloElement,sizeof(double));
sokstream->Read(&dTemp[0],(int)(ChisloElement*sizeof(double)));

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ssoft
  опции профиля:
сообщение 14.9.2011, 12:41
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 130
Регистрация: 17.2.2010
Из: Москва
Пользователь №: 1470

Спасибо сказали: 30 раз(а)




Репутация:   3  


Цитата(Гость_Андрей_* @ 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 ) );
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 15.9.2011, 8:30
Сообщение #3





Гости








    


Спасибо
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ssoft
  опции профиля:
сообщение 19.9.2011, 8:46
Сообщение #4


Участник
**

Группа: Участник
Сообщений: 130
Регистрация: 17.2.2010
Из: Москва
Пользователь №: 1470

Спасибо сказали: 30 раз(а)




Репутация:   3  


Нажимае кнопку "Спасибо"
:hi:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 23:26