如何拆分特殊长度的Erlang二进制文件?

时间:2012-02-06 05:56:24

标签: binary erlang split

我打开一个udp套接字,想要将我收到的二进制数据包拆分为每10个字节。有没有api或好的方法?谢谢!

1 个答案:

答案 0 :(得分:3)

这是一种方法:

split(Bin, LenPart) -> 
  lists:reverse(split1(Bin, LenPart, [])).

split1(Bin, LenPart, Acc) when byte_size(Bin) =< LenPart -> 
  [Bin | Acc];
split1(Bin, LenPart, Acc) -> 
  <<Part:LenPart/binary, Rest/binary>> = Bin,
  split1(Rest, LenPart, [Part | Acc]).