gen_tcp 有false,active,once,N这些选项,active是不提供流量控制的,之前没读懂,疑惑了好久,后面仔细看了看,也许是这个意思:erlang的话每个进程都有个邮箱,消息就放在邮箱中,在active模式下会无限的从底层接收缓存中提取消息到邮箱中,邮箱满了消息就会丢失。
packet参数的意义是说在发送消息的时候会自动生成这么多字节的头部,我试了试这个选项在active、false模式下的不同地方,在false模式下,packet为0,recv(Socket,Length)中的Length可以正确指定,packet非0情况,Length只能填0在active情况下,packet值为0会出现粘包的情况,非0不会