crossplatform.ru

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


  Ответ в QByteArray и QDataStream
Введите ваше имя
Подтвердите код

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

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


Последние 10 сообщений [ в обратном порядке ]
512es Дата 20.11.2008, 18:26
  оо.. их можно склаадывать =))))
спасибо!))

я просто не хочу хранить размерности строк в самом стриме. пусть они будут отдельно.. ограничиваться протоколом.. хоть и сложнее но на мой взгляд безопаснее.. да и байтоф меньше передавать по сети)

хотя над этим ещё стоит подумать..
sploid Дата 18.11.2008, 10:17
  если ты удалишь первые 4 байта из строки, которая пишется в стрим, то не сможешь определить ее длину при чтении из стрима.
Если ты сделаешь просто packetData += packetData2, то размер строки не будет дописан.
ViGOur Дата 17.11.2008, 14:03
 
Цитата(512es @ 17.11.2008, 13:01) *
а можно как то отключить автоматическое добавление quitn32 перед каждой строкой?
QTextStream?
512es Дата 17.11.2008, 13:01
  я кажется понял..
00000004 это длинна строки "test".. 4 байта..

а можно как то отключить автоматическое добавление quitn32 перед каждой строкой?
512es Дата 17.11.2008, 12:08
 
QByteArray packetData, packetData2;
QDataStream data(&packetData, QIODevice::WriteOnly);
packetData2.append("test");
data << (quint16) 22;
qDebug() << packetData.toHex() << packetData2.toHex();
data << packetData2;
qDebug() << packetData.toHex() << packetData2.toHex();




Output:

"0016" "74657374"

ок

"0016[b]00000004[/b]74657374" "74657374"

почему??

всмысле вот так:
"00160000000474657374" "74657374"
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 13:11