Russian Qt Forum
Апрель 29, 2024, 11:55 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 ... 19 20 [21]
301  Qt / Работа с сетью / Re: Чтение из сокета : Сентябрь 05, 2011, 17:28
Попробуйте так
Код
C++ (Qt)
QByterray arr;
QDateStream stream(&arr);
stream << objHead.sizeDAte << objHead.titMsg << objHead.nameFile;
m_pTcpSocket->write(arr);

Код
QDataStream stream(tcpSocet);
stream >> objHead.sizeDate >> objHead.titMsg >> objHead.nameFile;
 

Думаю, так должно сработать.


Да скорее всего и будет, но мне нужно без QDateStream!
Понял почему дописывает левые символы - всё дело в структуре!
имя записанное в objHead.name должно быть меньше 32 символов! Следовательно вопрос:
что нужно сделать чтобы можно было передавать имена больше 32 символов?

Код:
struct headl
{
   quint32 sizeDate;
   quint32 titMsg;
   char name[1024];
}
302  Qt / Работа с сетью / Re: Чтение из сокета : Сентябрь 05, 2011, 15:37
И все же как конкретно передать текстовое сообщение, если не QString..?
Объявить в структуре как вариант char name[1024]; и передавать таким образом?
Тогда попутно еще вопросик почему при конвертации из QString в char в конце добавляется мусор?

Код:
QString wayFile;
objHead.name[i] = wayFile.at(i).toAscii();
 
В замешательстве
 

303  Qt / Работа с сетью / Re: Чтение из сокета : Сентябрь 05, 2011, 11:29
При помощи QDataStream все записываешь в QByteArray, который уже и передаешь.

ты не обратил внимание.. я и передаю QByteArray! Для этого не обязательно использовать QDataStream
304  Qt / Работа с сетью / Re: Чтение из сокета : Сентябрь 05, 2011, 11:15
Потому что так нельзя делать. Используй QDataStream.

QString без QDataStream не передашь что ли? Мне нужно сделать методами read()/write().. без QDataStream..
305  Qt / Работа с сетью / Чтение из сокета : Сентябрь 05, 2011, 11:10
Добрый день! Такой вопрос..
Есть структура одна и та же у клиента и у сервера
Код:
struct headl
{
   quint32 sizeDate;
   quint32 titMsg;
   QString nameFile;
}
Ее передаю по сети..
Сервер
Код:
QByteArray arrBlock;
headl objHead;
objHead.sizeDate = 10;
objHead.titMsg = 1;
objHead.nameFile = "Hello";

arrBlock.append((const char*)&objHead,sizeof(objHead));
m_pTcpSocket->write(arrBlock);

Киент
Принимаю структуру..
Код:
tcpSocet->read((char*)&objHead,sizeof(objHead));
В полях..
objHead.sizeDate = 10;
objHead.titMsg = 1;
все передано корректно..

а вот в objHead.nameFile = 0х00ad1fd0;

ПОЧЕМУ?Непонимающий??
Страниц: 1 ... 19 20 [21]

Страница сгенерирована за 0.072 секунд. Запросов: 24.