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