Как упаковать ISO-сообщение принимающему хосту

Я пытаюсь упаковать сообщение ISO 8583, используя J8583:

        IsoMessage m = mf.newMessage(0x200); // You must use 0x200, 0x400, etc.
        m.setValue(3, "000000", IsoType.ALPHA, 6);
        m.setValue(11, "000001", IsoType.ALPHA, 6);
        m.setValue(41, "3239313130303031", IsoType.ALPHA, 16);
        m.setValue(60, "001054455354204D45535347", IsoType.ALPHA, 24);
        m.setValue(70, "0301", IsoType.ALPHA, 4);

        System.out.println(m.debugString());

Как я должен получить сообщение ISO перед отправкой принимающему хосту?

1 ответ

Решение

Есть три способа:

  • Вызов writeData чтобы получить сообщение, закодированное в виде байтового массива. Вы будете обязаны записать это в сокет с заголовками длины, терминатором и т. Д.
  • Вызов writeToBuffer если вы используете java.nio, чтобы получить ByteBuffer. Вы можете передать размер заголовка длины (обычно 2 или 4 байта) или 0, чтобы опустить заголовок длины. Результирующий ByteBuffer включает в себя терминатор сообщения, если он установлен.
  • Вызов write, чтобы написать сообщение непосредственно в OutputStream. Вы можете указать размер заголовка длины, и он также запишет терминатор (если установлен), а затем очистит поток.
Другие вопросы по тегам