2}]) 表示接收到的包头有两个字节:
receive
{tcp, Socket, Binary} -> 接收到的Binary中将不包含2字节的包头,包头会剥离,我们收到的将只是单纯的Body,这极大的方便了我们编程。
packet支持的参数有:
raw | 0 未完成的packeting,即不管数据包头,而是根据langth参数接收数据。
1 | 2 | 4
表示包头的长度,分别是1,2,4个字节(在大端字节序中还包含一个无符号整型),当设置了此参数时,接收到数据后将自动剥离对应长度的头部,只保留Body。
asn1 | cdr | sunrm | fcgi | tpkt | line
设置以上参数时,应用程序将保证数据包头部的正确性,但是在gen_tcp:recv2,3接收到的数据包中并不剥离头部。
http | http_bin
设置以上参数,收到的数据将被erlang:decode_packet/3格式化,在被动模式下将收到{ok,
HttpPacket},主动模式下将收到{http, Socket, HttpPacket}.