отправка структуры с сервера C на клиент Java (Android) - PullRequest
0 голосов
/ 12 марта 2012

У меня есть сервер C, который отправляет указанную ниже структуру клиенту при успешном соединении и соответствующий запрос для заполнения структуры.

 #pragma pack(push)
 typedef struct{
  int a[5];
  char b[5][20];
  char title[5][50];
   }rinfo;
 #pragma pack(pop)

Так что я могу успешно отправить эту структуру клиенту Cкоторый способен читать это правильно.Теперь, если я хочу сделать то же самое для Java-клиента (я слаб в Java), то я чувствую, что должен определить класс из тех же членов, как

  Class rinfo {
  //the above members
    }

, но тогда как мне прочитать структуруиз сокета Java?Для обычных сообщений я использую

  BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); 

, где socket - это определение моего сокета.Как я должен изменить вышеупомянутое утверждение, чтобы прочитать структуру, передаваемую моим C-сервером.Кроме того, есть ли какие-либо осложнения?Что-нибудь связанное с преобразованием порядка байтов?Я новичок в программировании Java .. спасибо

1 Ответ

2 голосов
/ 12 марта 2012

Мое предложение было бы использовать JSON / XML в качестве механизма для упаковки данных.Если вы поместите, если вы поместите его в ByteArray, то вам нужно разделить их в соответствии с размерами, и если размер варьируется, то вам будет трудно, и будут выданы исключения.

Если пойти дальше, вы можете использоватьBufferedReader для чтения данных в байтах, а затем преобразовать их в строку для получения полных данных.

Для этого доступно множество примеров для чтения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...