Как 32-битный клиент может связаться с 64-битным сервером, если передан тип long?

У нас есть 32-битное приложение C ++ GUI, работающее на 32-битных окнах 7. Мы планируем перевести наш сервер с приложениями C ++ на 64-битную версию Linux. Мы заметили, что длинные типы больше в 64 бит. Это будет несовместимо с передачей сообщений клиент-сервер от 64-разрядных к 32-разрядным. Какой хороший способ решить эту несовместимость? Нужно ли менять код? Как? или мы используем стороннее программное обеспечение для преобразования? Какое программное обеспечение это?

0

Решение

Вот почему есть стандартизированный int32_t а также uint32_t типы и т. д., так что вы можете специально выбрать тип в зависимости от ваших потребностей.

Это может быть довольно много работы, чтобы заменить все long типы для int32_t во всех структурах, которые вы отправляете, особенно если это большой проект, но вы (надеюсь) должны сделать это только один раз. Другим способом решения этой проблемы является сериализация данных в текстовый формат, а затем десериализация их на принимающей стороне. Это имеет большое преимущество, заключающееся в том, что коммуникация становится практически полностью независимой от платформы.

3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector