0

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

4

2 回答 2

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}模式,这意味着底层会为您解码内容。

于 2012-10-31T12:09:41.097 回答
0

我实际上并没有使用它,但是这个怎么样:https ://github.com/essiene/smpp34pdu/blob/master/src/tlv.erl

于 2012-10-31T23:27:18.897 回答