gpt4 book ai didi

c - 将 erlang 记录发送到 c 程序

转载 作者:可可西里 更新时间:2023-11-01 02:34:27 25 4
gpt4 key购买 nike

我正在做我的作业,其中一部分是将 erlang 术语发送到一个 c 程序,该程序将能够通过已建立的 tcp 连接相互通信。

我能够发送数字、列表、 bool 值、二进制文件,并能够在我的 C 程序中对它们进行解码以获取发送的消息。我正在使用 ei 模块来做这些事情。在 erlang 方面,我使用 etf 编码,如 term_to_binary/1 和其他。

就是说,我想知道如何通过在 erlang 端编码并在 c 端解码的套接字发送记录。 ei 有很多函数来获取从二进制格式解码的原始数据类型,但不能获取像记录这样的复合数据类型。

记录很简单,如 -rd(person, {name = "", email = ""})我可以将其发送为

gen_tcp:send(Socket, term_to_binary(#person{name="stack", age = 16})).

c端如何解码。

我用谷歌搜索过,但没有找到很多这方面的资源。请帮忙!谢谢!

最佳答案

二郎 External Term Formatdocumentation 中有详细描述.有 Erlang Interface包含 ei 的图书馆申请图书馆有详细Encoding, Decoding and Sending Erlang Terms文档。请注意,有更多低级接口(interface) ei 直接使用以 Erlang 外部术语格式编码的缓冲区和 erl_interface 使用 ETERM 等同于BEAM VM 内部使用的 Erlang 术语。

书中还有一整章专门讨论这个话题Erlang and OTP in Action它显示了一个使用 ei 的实际示例,但只是触及表面。官方文档更加详细和完整。官方文档包含Interoperability Tutorial User's Guide带有 Erl_Interface 的工作代码的完整示例尽管不包含使用低级 ei 的完整示例。

关于c - 将 erlang 记录发送到 c 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36731351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com