Вызов CIP сервера TCP / IP с Java [дубликат]

В ES6 у вас есть еще одна опция

function reverseString (str) {
  return [...str].reverse().join('')
}

reverseString('Hello');
4
задан Carlo del Mundo 5 August 2010 в 22:29
поделиться

2 ответа

  • Утомляйтесь, если используете двоичную сериализацию. Sun JVM - Big Endian, и если вы на Intel x86, вы находитесь на маленькой конечной машине.
  • Я бы использовал Java ByteBuffer для быстрой нативной сериализации. ByteBuffers являются частью библиотеки NIO, что, предположительно, выше, чем у «DataInput / OutputStreams».
  • Будьте особенно устали от сериализации поплавков! Как было предложено выше, его безопаснее передавать все ваши данные в строки символов по проводке.
  • На стороне C ++, независимо от сети, в какой-то момент у вас будет заполненный буфер данных. Таким образом, ваш код десериализации будет выглядеть примерно так:

size_t amount_read = 0;
data my_data;
memcpy(buffer+amount_read, &my_data.speed, sizeof(my_data.speed))
amount_read += sizeof(my_data.speed)
memcpy(buffer+amount_read, &my_data.length, sizeof(my_data.length))
amount_read += sizeof(my_data.length)
  • Обратите внимание, что размеры базовых типов C ++ определены реализацией, поэтому вы примитивные типы в Java и C ++ don Прямо перевести.
  • Вы можете использовать буферы Google Protocol . Мое предпочтительное решение для работы с различными структурами данных.
  • Вы также можете использовать JSON для сериализации.
3
ответ дан Imran.Fanaswala 20 August 2018 в 12:43
поделиться

Основной процесс:

  • Приложение java создает некоторую переносимую версию структур в приложении java, например XML
  • Java приложение отправляет XML в приложение C ++ через сокет
  • Приложение C ++ получает XML из java-приложения
  • Приложение C ++ создает экземпляры структур с использованием данных в XML-сообщении
0
ответ дан user 20 August 2018 в 12:43
поделиться
  • 1
    Мне сказали использовать файл XML Schema (XSD). И затем используйте ant, чтобы создать класс Java Bean. Класс java bean сериализуем ... поэтому я в основном отправляю данные из класса java bean. Это правильный метод? Вникая в специфику, как можно иметь XML-аналог для массивов символов или перечислений? Кстати, где я могу узнать больше об этом? – Carlo del Mundo 5 August 2010 в 22:50
  • 2
    @Carlo У вас нет прямых аналогов для всех типов Java и C ++ - ваш код должен будет выполнять соответствующие преобразования. Итак, создайте свой bean-компонент, попробуйте его сериализовать, а затем посмотрите на XML, который он создает. Кроме того, найдите библиотеку, которая будет делать все это для вас или использовать (содрогаться) что-то вроде CORBA, SOAP и т. Д. – user 5 August 2010 в 22:54
  • 3
    Спасибо, сэр! Я буду помнить об этом! – Carlo del Mundo 6 August 2010 в 01:34
Другие вопросы по тегам:

Похожие вопросы: