Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Передача объекта через сокет

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

KADABRA



Великий покусатель
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Проект восстановлен после заморозки
 
WiseAlex

Цитата:
Ты фактически создал свой класс-предок для реализации сериализации, которая уже есть в mfc а зачем? бери готовое решение и не мучайся - будут работать и строки и все стальное.

Набор классов данных должен быть кроссплатформенным, и тут МФЦ использовать нельзя.
Для возможности работы на 32 и 64 (и 128 может быть ) разрядных процах будет использоватся sprintf(), а не memcpy(), а переменные в строке будут разделятся \n .

----------
Это не подпись.

Всего записей: 1718 | Зарегистр. 14-07-2003 | Отправлено: 22:08 25-09-2004 | Исправлено: KADABRA, 22:09 25-09-2004
fuxx

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ок. Поднимаемся на следующий уровень.
 
Кроссплаторменная сериализация не обязательно должна быть
основана на текстовом представлении типов данных. Кроссплатформенной
может быть и двоичная сериализация. Просто ее сделать немного
сложнее.  
 
Подумай о том чтобы завести версии протокола серализации. Они тебе будут
нужны когда ты что-то изменишь в будущем.
 
Есть куча стандартов и спецификаций касательно сериализации.
http://www.ietf.org/rfc/rfc1832.txt -- XDR: External Data Representation Standard
CDR - Common Data Representation (смотри на сайте ОМГ спецификацию CORBA)
В бусте (http://www.boost.org) недавно появилась библиотека сериализации.
Советую взглянуть.
Гугль тебе в помощь.  

Всего записей: 117 | Зарегистр. 14-04-2003 | Отправлено: 01:20 26-09-2004
KADABRA



Великий покусатель
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
fuxx

Цитата:
Кроссплаторменная сериализация не обязательно должна быть
основана на текстовом представлении типов данных. Кроссплатформенной
может быть и двоичная сериализация. Просто ее сделать немного
сложнее.

А это вот это :
Цитата:
http://www.ietf.org/rfc/rfc1832.txt
?
И если можно то простой код такой сериализации?

----------
Это не подпись.

Всего записей: 1718 | Зарегистр. 14-07-2003 | Отправлено: 17:21 16-10-2004
vndovr

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Судя по всему он используется при RPC (Remote procedure call), поэтому есть смутное подозрение, даже уверенность ,  что в исходниках Linux есть поддержка этого формата.  
Если же смотреть там лениво то можно набрать в google.com строку "xdr.h" и ползая по ссылкам скачать просто исходники для этого дела.  
 
В связи с этим возникла забавная идея, что, если зайти, к примеру, на sourceforge.net и набрать rpc для поиска, то можно без проблем найти библиотеку в искходниках C/C++ для реализации xml-rpc и взять оттуда сериализацию данных.

Всего записей: 359 | Зарегистр. 05-02-2004 | Отправлено: 03:25 17-10-2004 | Исправлено: vndovr, 03:27 17-10-2004
WiseAlex



Софтовых дел М...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
fuxx
что-то в boost'e такого не нашел - намекни какой раздел
--
KADABRA
кроме версии протокола нужны версии объектов и какие-то принципы работы с этими версиями - например некий объект версии 2 может обойтись информацией от вер 1, а версия 3 уже нет и прочие коллизии такого рода - проблем здесь очень много

----------
Если не я за себя, то кто за меня?
Если я только сам по себе - что я?
И если не теперь, то когда? (Гилель)

Всего записей: 1001 | Зарегистр. 02-03-2003 | Отправлено: 12:37 18-10-2004
KADABRA



Великий покусатель
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
WiseAlex
Это уже продумано и реализуется на уровень выше сериализации(и на оборот) или прямо в енй, если библиотека есть готовая, котороя это поддерживает (На Вин и Юн/Лин).
Но можно конечно свою писать, но с програмированием под Юн/Лин не знаком, да и под Вин нужно, чтоб все остальные платформы понимали. Самы простой - это просто в строку с разделением переменных \n  

----------
Это не подпись.

Всего записей: 1718 | Зарегистр. 14-07-2003 | Отправлено: 15:59 18-10-2004
fuxx

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
KADABRA

Цитата:
И если можно то простой код такой сериализации?

Я не предлагаю тебе реализивать (или воспользоваться) уже сеществующей спецификацией. Просто посмотри как все сделано там и воспользуйся их  
идеями (если нельзя просто использовать одну из реализаций, CORBA например).
 
Мы тебе тут много чего можем наговорить. А в такого роде документах ты найдешь
решения, которые работают уже много лет.
 
 
Добавлено
WiseAlex

Цитата:
что-то в boost'e такого не нашел - намекни какой раздел  

Не уверен но, похоже, что он пока есть только в CVS:
http://cvs.sourceforge.net/viewcvs.py/boost/boost/boost/serialization/

Всего записей: 117 | Зарегистр. 14-04-2003 | Отправлено: 16:04 18-10-2004
WiseAlex



Софтовых дел М...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
fuxx

Цитата:
Не уверен но, похоже, что он пока есть только в CVS:

да похоже на то

----------
Если не я за себя, то кто за меня?
Если я только сам по себе - что я?
И если не теперь, то когда? (Гилель)

Всего записей: 1001 | Зарегистр. 02-03-2003 | Отправлено: 16:25 18-10-2004
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Передача объекта через сокет


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru