在Erlang中处理TLV的任何lib或正式方法?

时间:2012-10-31 04:45:40

标签: erlang tlv

我正在研究处理数据交换的协议,有点复杂,然后我发现TLV是我需要的。有没有正式的方法来读写erlang中的TLV?还是处理这个的一些lib /代码示例?感谢。

2 个答案:

答案 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