0

少し複雑なデータ交換を処理するプロトコルに取り組んでいますが、TLV が必要なものであることがわかりました。erlangでTLVを読み書きする正式な方法はありますか? またはこれを処理するライブラリ/コード例はありますか? ありがとう。

4

2 に答える 2

1

Erlang の「デフォルト」は TLV ではなく LTV ですが、扱いはかなり簡単です。

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 に答える