最主要參考:erlang R17新socket選項{active,N}html
inet:setopts(Socket, [{active, 300}]), erlang:send_after(30 * 1000, self(), release_passive); 大概思路是,在30秒內最多接收300個包,超過就不接收,等待這30秒完成後繼續接收,如此反覆。 利用這點還能夠加多一個計數器,若是超過10次進入passive狀態,說明這個Socket存在問題,有攻擊的行爲。
另外參考:
socket
inet驅動新增長{active,N} socket選項tcp
gen_tcp容易誤用的一點解釋.net