Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Запрос типа C++ struct / 5 сообщений из 5, страница 1 из 1
17.10.2012, 21:04:03
    #38003320
mr.Jack
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос типа C++ struct
Добрый день. Вот есть некое приложение на С++ , принимающее данные через сокет. При отправке с приложения на С++ проблем не возникает, однако, как быть в случае Java? Допустим, приложение на C++ принимает запрос в виде struct, в ней dword, UCHAR, IN_ADDR и прочие типы, которых в Java просто нет. Подозреваю, что необходимо данные в Java приложении преобразовать в массив байт. В общем, прошу направить меня в нужную сторону
...
Рейтинг: 0 / 0
18.10.2012, 10:11:08
    #38003705
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос типа C++ struct
Просто используйте кросс-платформенные протоколы сериализации.
Hessian, Protobuf (JSON, SOAP на худой конец)
Если сторону C++ нельзя исправить, то наверное через ByteBuffer, придется разруливать. Или поискать подходящий фреймверк для парсинга бинарных данных.
...
Рейтинг: 0 / 0
18.10.2012, 10:15:29
    #38003714
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос типа C++ struct
mr.Jack,
Если Сишник и любишь на низком уровне, то отправляешь байты-буффер-поток и получаешь тоже их.
...
Рейтинг: 0 / 0
18.10.2012, 23:31:38
    #38005104
mr.Jack
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос типа C++ struct
Сторону С++ исправить нельзя, верно.
А можете дать пример или навести на пусть, к примеру, как перевести IN_ADDR, UCHAR и DWORD в байты? Нужен ли какой-нибудь заголовок для структуры? Например, IN_ADDR сама является структурой, содержащая в себе еще 2 структуры и поле u_long .. как быть в этом случае?
...
Рейтинг: 0 / 0
19.10.2012, 01:00:45
    #38005141
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос типа C++ struct
mr.Jack,
если на нижнем уровне, то разворачиваешь все данные на элементарные типы (принцип сериализации).
А типы в байты и ловить на той стороне. Там обратно собираешь.
типа:
http://www.delphisources.ru/forum/showthread.php?t=22068&page=2

http://spec-zone.ru/RU/Java//Docs/7/api/java/nio/class-use/ByteBuffer.html#java.nio.channels
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Запрос типа C++ struct / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]