我正在研究处理数据交换的协议,有点复杂,然后我发现TLV是我需要的。有没有正式的方法来读写erlang中的TLV?还是处理这个的一些lib /代码示例?感谢。
答案 0 :(得分:1)
Erlang中的“默认”是LTV而不是TLV,但它很容易处理:
case gen_tcp:recv(Socket, 8) of
<<Type:32/integer, Len:32/integer>> ->
Payload = gen_tcp:recv(Socket, Len),
{type_of(Type), Payload};
...
end,
您需要使用被动套接字才能使其正常工作,但这很容易实现。如果您可以自由选择格式,则LTV编码更好,因为您可以将套接字置于{active, once}
模式,这意味着底层将为您解码内容。
答案 1 :(得分:0)
我还没有真正使用它,但是这个怎么样:https://github.com/essiene/smpp34pdu/blob/master/src/tlv.erl