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

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] Сериализация данных для передачи по сети  (Прочитано 10663 раз)
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« Ответ #15 : Апрель 01, 2015, 11:03 »

Непонятно зачем нужен текст для передачи по сети.
В какой контейнер засовывать данные? std::vector<char> ?

Сервер будет написан на boost::asio без Qt.
std такой неудобный после Qt. В Qt взял классик и все работает, у тут пили напильником эти поделки.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #16 : Апрель 01, 2015, 13:38 »

Непонятно зачем нужен текст для передачи по сети.
В какой контейнер засовывать данные? std::vector<char> ?
Зачем куда-то засовывать? Просто пишите-читайте, пример
Код
C++ (Qt)
class MyOutStream : public std::ofstream {
public:
template <class T>
MyOutStream & WriteSimple( T val )
{
  write((char *) &val, sizeof(val));
  return *this;
}
 
MyOutStream & operator << ( size_t val ) { return WriteSimple(val); }
MyOutStream & operator << ( int val )      { return WriteSimple(val); }
MyOutStream & operator << ( float val )   { return WriteSimple(val); }
 
MyOutStream & operator << ( const std::string & str )
{
  (*this) << str.size();
  write(str.c_str(), str.size());
  return *this;
}
 
MyOutStream & operator << ( const char * str )
{
  (*this) << strlen(str);
  write(str, strlen(str));
  return *this;
}
 
template <class T>
MyOutStream & operator << ( const std::vector<T> & vec )
{
  (*this) << vec.size();
  for (size_t  i = 0; i < vec.size(); ++i)
   (*this) << vec[i];
 
  return *this;
}
};
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


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