Преобразование терминов эрланга в строку или декодирование двоичного кода эрланга

У меня есть программа на erlang, которая генерирует данные. Эти данные необходимо передать через udp в программу, отличную от Erlang, для дальнейшей обработки. Эта часть у меня уже работает - отправка данных через udp и получение их на другой стороне, отличной от Erlang.

Вот в чем проблема. Данные (термины Erlang, такие как кортежи, содержащие списки), похоже, не могут передаваться «как есть» (т.е. я не могу просто отправлять произвольные термины Erlang). Очевидно, сначала его нужно преобразовать либо в текст, либо в двоичный. Преобразование в двоичный код кажется достаточно простым с найденным мною bif.Проблема в том, что двоичный gobbledygook выходит с другой стороны, и я не знаю простого способа его декодировать (другая сторона - не-erlang).

Если кто-то не говорит мне какой-то простой способ декодирования бинарной чепухи с другой стороны, я бы хотел, чтобы данные отправлялись в виде упрощенного строкового представления терминов - например, такой кортеж:

{[1,2,3],[4,5,6]}

отправляется так :

"{[1,2,3],[4,5,6]}"

Я не видел ни одного такого bif, то есть "convert_term_to_ascii / 1" и т. Д. Я знаю, что могу отсканировать его и отправить токен-представление терминов, но я не хочу этого делать - расшифровывая это с другой стороны сторона - это просто боль, с которой я не хочу иметь дело.

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

Может ли кто-нибудь указать мне на какой-нибудь ресурс, показывающий, как либо 1) преобразовать двоичный gobbledygook в ascii (требуется на стороне, отличной от Erlang), или 2) напрямую преобразовать термины в строку (необходимо на стороне эрланга)?

Или скажите мне, в чем я ошибаюсь и как мне на самом деле следует это делать?

Спасибо.

22
задан X Z 24 February 2012 в 00:10
поделиться