2014-03-13 57 views
1

我有一個數據包來自一個由兩個小部分組成的插座,第一個由4位數字組成,後者由16個字母數字組成。使用二進制文件匹配N個數字

如何使用二進制文件和模式匹配來綁定來自套接字的數據包?

例如,如果我得到:

1234th58i4kr04o3 

我想獲得:

Packet1 = 1234 
Packet2 = "th58i4kr04o3" 

回答

3

您可以通過使用Erlang的bit syntax和二進制模式匹配做到這一點:

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

「從字面上實現「? – Berzemus

+0

固定。現在應該清楚了! – mkorszun