У меня есть программа erlang, которая генерирует данные. Эти данные должны быть переданы через UDP в не-Erlang программу для дальнейшей обработки. У меня уже есть эта часть работы - отправка данных через udp и получение их с другой стороны, не относящейся к эрлангу.
Вот проблема. Похоже, что данные (термины эрланга, такие как кортежи, содержащие списки) не могут пройти «как есть» (то есть я не могу просто отправить произвольные термины эрланга). По-видимому, сначала его необходимо преобразовать в текстовый или двоичный файл. Преобразование в двоичный файл кажется достаточно простым с 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) просто преобразовать термины в строку (необходимо на стороне erlang)?
Или, скажите мне, как я ошибаюсь и как я должен это делать?
Спасибо.