| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- //+build linux
- package nnet
- import (
- "github.com/valyala/tcplisten"
- "net"
- "syscall"
- )
- var cfg = tcplisten.Config{
- ReusePort: true, DeferAccept: true, FastOpen: true, Backlog: 0,
- }
- func Listen(addr string) (net.Listener, error) {
- err := setMaxConn()
- if err != nil {
- return nil, err
- }
- return cfg.NewListener("tcp4", addr)
- }
- func setMaxConn() error {
- var RLimit syscall.Rlimit
- err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &RLimit)
- if err != nil {
- return err
- }
- RLimit.Cur = 800000
- RLimit.Max = 800000
- err = syscall.Setrlimit(syscall.RLIMIT_NOFILE, &RLimit)
- if err != nil {
- return err
- }
- err = syscall.Getrlimit(syscall.RLIMIT_NOFILE, &RLimit)
- if err != nil {
- return err
- }
- return nil
- }
|