Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: QByteArray и QDataStream
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Ввод/Вывод, Сеть. Межпроцессное взаимодействие
512es
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"
512es
я кажется понял..
00000004 это длинна строки "test".. 4 байта..

а можно как то отключить автоматическое добавление quitn32 перед каждой строкой?
ViGOur
Цитата(512es @ 17.11.2008, 13:01) *
а можно как то отключить автоматическое добавление quitn32 перед каждой строкой?
QTextStream?
sploid
если ты удалишь первые 4 байта из строки, которая пишется в стрим, то не сможешь определить ее длину при чтении из стрима.
Если ты сделаешь просто packetData += packetData2, то размер строки не будет дописан.
512es
оо.. их можно склаадывать =))))
спасибо!))

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

хотя над этим ещё стоит подумать..
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.