package main import ( "flag" "fmt" "math/rand" "os" "time" ) func main() { configPath := flag.String("config", "", "Config file.") bindAddr := flag.String("bind", "127.0.0.1:7000", "Bind address and port") flag.Parse() if *configPath == "" { flag.PrintDefaults() os.Exit(1) } rand.Seed(time.Now().UTC().UnixNano()) // always seed random! var pm *ProxyManager pm, err := NewPM(*configPath) // fmt.Println("pm:", pm) if err != nil { panic(err) } fmt.Printf("Load balance mode: %s.\n", pm.DescribeLoadBalanceMode()) conf := &Config{PM: pm} server, err := New(conf) if err != nil { panic(err) } // Create SOCKS5 proxy on localhost port 8000 if err := server.ListenAndServe("tcp", *bindAddr); err != nil { panic(err) } }