crossplatform.ru

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


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

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

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


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