【发布时间】:2012-03-14 11:23:17
【问题描述】:
我有一个生成数据的 erlang 程序。此数据需要通过 udp 传输到非 erlang 程序以进行进一步处理。我已经让这部分工作了——通过 udp 发送数据并在另一个非 erlang 端接收它。
这就是问题所在。数据(像包含列表的元组这样的 erlang 术语)似乎无法“按原样”处理(即我不能只发送任意的 erlang 术语)。它显然需要先转换为文本或二进制。使用我发现的 bif 转换为二进制似乎很容易。问题是,二进制 gobbledygook 从另一边出来,我不知道有什么简单的方法来解码它(另一边是 non-erlang)。
除非有人告诉我一些简单的方法来解码二进制 gobbledygook,否则我希望将数据作为术语的简单字符串表示形式发送 - 例如像这样的元组:
{[1,2,3],[4,5,6]}
这样发送:
"{[1,2,3],[4,5,6]}"
我没有看到任何这样的 bif,即“convert_term_to_ascii/1”等。我知道我可以扫描它并发送术语的令牌表示,但我不想这样做 - 在另一边解码只是我不想面对的痛苦。
我知道我不是第一个、第二个或第三个遇到此问题的人。它必须相当普遍。一般是怎么处理的?
有人可以指点我一些资源,向我展示如何 1)将二进制 gobbledygook 转换为 ascii(非 erlang 端需要),或 2)直接将术语转换为字符串(erlang 端需要)?
或者,告诉我我哪里错了,我应该怎么做?
谢谢。
【问题讨论】:
标签: erlang