舊項目中erlang使用{packet, 0},使用的是{active, false}選項。因爲false是最慢的,準備改版的時候,使用{active, N}選項,但失敗了。socket
使用{packet, 0},而後啓動{active, N}選項時,erlang底層解包時出現粘包的狀況,數據格式錯誤,根本跟協議對不上。.net
後來參考:erlang 解決socket 數據粘包問題, 更是證明了這個問題。blog
不少博文都建議{packet, 4} + {active, N}.get
可使用{active, N}, 但要本身手動解包。erlang