Я пишу код на C ++, который должен будет отправлять данные по TCP / IP. Я хочу, чтобы этот код был переносимым в Linux / Windows / Osx. Теперь, когда я пишу код переносимой сети впервые, мне нужно добавить несколько простых функций к определенным объектам, таким как:
class myclass{
...member...
public:
string serialize(){
std::ostringstream out();
out << member1;
out << member2;
out << member3;
return out.str();
}
}
... это все, что мне сейчас нужно. В любом случае, я начал читать документы, связанные с ostringstream, и выяснил, что проблема с бинарным / текстовым текстом. Фактически он преобразует разрывы строк в правильную последовательность everysystem. Предположим, например, что член является указателем на const char * foo = "Hello \ nMan \ n", который будет транслироваться в определенной последовательности байтов в Linux, другой в Windows ... и так далее. Мои байты будут отправляться через пакет через Интернет, их будет читать другая операционная система, и я думаю, что возникнут проблемы ... Теперь я прочитал, что могу инициализировать ostringstream
с ostringstream(ios::bin)
... Решит ли это проблему ( при условии, что я буду использовать функцию десериализации, которая будет использовать istringstream(ios::bin)
. Я запутался во всей картине, если вы можете потратить несколько уточняющих строк, которые будут высоко оценены.
Спасибо.