erlang网络库
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

42 rader
1.2 KiB

5 år sedan
5 år sedan
5 år sedan
5 år sedan
  1. %% gen_tcp ready maybe to set sock options
  2. %% ssl ready and then need do ntSslAcceptor:handshake/3 and maybe to set other options
  3. %% ppt ready and then need do ntPptAcceptor:pptAndHS/5 and maybe to set other options
  4. -define(mSockReady, mSockReady).
  5. -define(DefTpOpts, [
  6. binary
  7. , {packet, 4}
  8. , {active, false}
  9. , {reuseaddr, true}
  10. , {nodelay, false}
  11. , {delay_send, true}
  12. , {send_timeout, 15000}
  13. , {keepalive, true}
  14. , {exit_on_close, true}
  15. , {back_log, 1024}
  16. ]).
  17. -define(AptCnt, 16).
  18. -define(DefSslHSTet, 15000).
  19. -define(DefProxyPtTet, 5000).
  20. -export_type([listenOpt/0]).
  21. -type listenOpt() ::
  22. {aptCnt, non_neg_integer()} |
  23. {conMod, atom()} |
  24. {conArgs, atom()} |
  25. {tcpOpts, [gen_tcp:listen_option()]} |
  26. {sslOpts, [ssl:ssl_option()]} |
  27. {sslHSTet, timeout()} |
  28. {udpOpts, [gen_udp:option()]} |
  29. {proxyPt, boolean()} |
  30. {proxyPtTet, timeout()}.
  31. %% 令牌桶相关定义
  32. -record(tBucket, {
  33. rate :: pos_integer() %% 速率
  34. , tokens :: non_neg_integer() %% 剩余tokens数量
  35. , lastTime :: pos_integer() %% 最后一次更新访问时间单位毫秒
  36. , bucketSize :: pos_integer() %% 桶大小 可以容纳的令牌数量
  37. }).