使用二进制文件匹配N位数

时间:2014-03-13 20:57:50

标签: erlang pattern-matching

我有一个来自套接字的数据包,由两个子部分组成,第一个由4位数字组成,后者由16个字母数字组成。

如何使用二进制文件和模式匹配来绑定来自套接字的数据包?

例如,如果我收到:

1234th58i4kr04o3

我想获得:

Packet1 = 1234
Packet2 = "th58i4kr04o3"

1 个答案:

答案 0 :(得分:3)

您可以使用Erlang bit syntax和二进制模式匹配来完成此操作:

<<A:4/binary, Rest/binary>> = <<"1234th58i4kr04o3">>, 
Packet1 = binary_to_integer(A), 
Packet2 = binary_to_list(Rest).