为了说明二进制端口和普通端口的区别,我们用“双字节包头加数据”协议从外部进程向Erlang发送字符串"hello"。外部程序将输出如下字节序列:
令端口发送二进制对象而非列表的好处在于,相对于长列表,构造和发送二进制数据的速度要快很多。
term_to_binary(T) binary_to_term(Bin)binary_to_list(Bin) binary_to_list(Bin,Start,Stop)与term_to_binary/1相反。
list_to_binary(Charlist) split_binary(Bin,Pos)将二进制对象从Start到Stop的部分转为整数列表。二进制对象的位置下标从1开始计算。
concat_binary(ListOfBinaries)将Bin从Pos处切分为两个新的二进制对象。得到的是包含两个新二进制对象的元组。例如:
- 1> B = list_to_binary("0123456789").#Bin2> size(B).103> {B1,B2} = split_binary(B,3).{#Bin,#Bin}4> size(B1).35> size(B2).7