Название: Формирование сетевого пакета Отправлено: max1983 от Февраль 13, 2011, 15:01 Делаю так.
Код: QString Login = QString(plainTextEditLogin->toPlainText()); НЕ ПРАВИЛЬНЫЙ ПРАВИЛЬНЫЙ [0x0] 0x1 '_' [0x0] 0x1 '_' [0x1] 0x0 '' [0x1] 0x0 '' [0x2] 0x0 '' [0x2] 0x0 '' [0x3] 0x0 '' [0x3] 0x0 '' [0x4] 0xf '_' [0x4] 0xf '_' [0x5] 0x0 '' [0x5] 0x0 '' [0x6] 0x30 '0' [0x6] 0x0 '' [0x7] 0x0 '' [0x7] 0x0 '' [0x8] 0x8 '_' [0x8] 0x8 '_' [0x9] 0xff 'ÿ' [0x9] 0x0 '' [0xa] 0x0 '' [0xa] 0x0 '' [0xb] 0x0 '' [0xb] 0x0 '' [0xc] 0x1 '_' [0xc] 0x1 '_' [0xd] 0x0 '' [0xd] 0x0 '' [0xe] 0x0 '' [0xe] 0x0 '' [0xf] 0x0 '' [0xf] 0x0 '' Разница выделена красным. Кто виноват? Это из дебагера сервера.. мож по пути пакеты подпортились? Использую UDP. Название: Re: Формирование сетевого пакета Отправлено: Fat-Zer от Февраль 13, 2011, 15:21 QByteArray & QByteArray::insert ( int i, char ch )
Название: Re: Формирование сетевого пакета Отправлено: max1983 от Февраль 13, 2011, 15:57 Код: datagram.insert(4,sizeof(tr("Login")));//Сообщяем о длине логина я пишу данные в 0,4,8,12.. откуда берутся данные в 6 и 9? Название: Re: Формирование сетевого пакета Отправлено: Fat-Zer от Февраль 13, 2011, 16:00 я к тому что insert устанавливает только один(!) байт, а остальные 3 остаются случайными.
в "6 и 9" - это как раз и есть неинициализираванные данные. Нулями за вас заполнять никто массив не будет. ЗЫ: к проблеме не относится, но посмотрите как insert работает... resize в данном случае - бесполезная вещь Название: Re: Формирование сетевого пакета Отправлено: max1983 от Февраль 13, 2011, 18:08 Код: QByteArray datagram;//Бутесы А мне надо 0x0... кто знает как? Название: Re: Формирование сетевого пакета Отправлено: Странник от Февраль 14, 2011, 11:21 я к тому что insert устанавливает только один(!) байт, а остальные 3 остаются случайными. это кто тебе рассказал такую враку?для установки нескольких байт: QByteArray & QByteArray::insert ( int i, const QByteArray & ba ) QByteArray & QByteArray::insert ( int i, const QString & str ) QByteArray & QByteArray::insert ( int i, const char * str ) QByteArray & QByteArray::insert ( int i, const char * str, int len ) QByteArray & QByteArray::insert ( int i, const char * str, int len ) - и пожалуйста, впихивай свои int'ы. Название: Re: Формирование сетевого пакета Отправлено: Fat-Zer от Февраль 14, 2011, 11:34 я к тому что insert устанавливает только один(!) байт, а остальные 3 остаются случайными. это кто тебе рассказал такую враку?Название: Re: Формирование сетевого пакета Отправлено: max1983 от Февраль 14, 2011, 12:29 я про перегруженные версии знаю, но в том коде, который привёл ТС всё приводилось к char и устанавливался только один байт... Все верно! Спасибо Fat-Zer.пока решение datagram[6] = 0x0; и т д |