|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.08.2012, 07:39 | #1 |
Форумчанин
Регистрация: 02.06.2011
Сообщений: 282
|
protobuf C++/C#
как в один поток FileStream, например на стороне C#, записать несколько разных сообщений и потом их распарсить на стороне C++?
я сделал так: пишу idшник сообщения, потом пишу это сообщение, потом опять id другого сообщения и само сообщение. и так далее. методом .WriteTo. на стороне C++ читаю id, выбираю тип сообщения по id, читаю в подходящее сообщение. методом .ParseFromIstream. Но читается из потока верно только первое сообщение. остальные забиваются нулями. может кучки сообщений нужно читать/писать каким-то "правильным" способом? |
22.08.2012, 08:53 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Начните с того, что прогоните алгоритм "вручную" и определите, каков должен быть поток байт. Потом посмотрите файл - все ли в нем правильно. Потом посмотрите получающую половину - правильно ли читает.
|
22.08.2012, 09:03 | #3 |
Форумчанин
Регистрация: 02.06.2011
Сообщений: 282
|
прогнал. вопрос решил так:
зная размер (в байтах, пусть n) сообщения id, читаю из буфера в дополнительный буфер n байт, из буфера парсю (какое слово ) id. потом то же самое с сообщением |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблемы с protobuf C# | Kukurudza | C# (си шарп) | 5 | 16.08.2012 12:22 |
Как скомпилировать/пользоваться библиотекой protobuf | Kukurudza | Общие вопросы C/C++ | 4 | 16.08.2012 10:35 |