Erlang中文手册(Erldoc.com)  »  erlang  »  decode_packet/3
Erlang并发编程 Erlang/OTP设计原理 Erlang/OTP[pdf] Mnesia用户手册[pdf] Erlang完整手册[en] 官网手册[en] 模块列表 方法列表 随机 Erlang中文社区(BBS) 美女图库

erlang:decode_packet/3

从一个二进制数据里解码一个协议包

用法:

decode_packet(Type,Bin,Options) -> {ok,Packet,Rest} | {more,Length} | {error,Reason}

根据指定类型 Type 的包协议,解码一个二进制数据 Bin。很像 Socket 的包处理选项 {packet,Type}。

如果整个数据包包含在二进制数据 Bin 里,那么它将以 {ok,Packet,Rest} 的形式,跟剩余的二进制数据一起返回。

如果二进制数据并不完全包含整个数据包,那么将返回 {more,Length}。变量 Length 或是数据包的总大小,或返回 undefined(如果包的大小读取不了的话)。后来添加的更多数据可以被函数 erlang:decode_packet/2 再次调用处理。

如果数据包并不符合协议格式,那么将返回 {error,Reason}。

erlang:decode_packet(1, <<3, "abcd">>, []).
erlang:decode_packet(1, <<5, "abcd">>, []).
阿里云 - 最高1000元通用代金券立即可用
沪ICP备13037221号-9