go-socks5 icon indicating copy to clipboard operation
go-socks5 copied to clipboard

support get get random port number

Open hktalent opened this issue 5 years ago • 0 comments

package main

import( 
  "fmt"
  "net"
  socks5 "github.com/hktalent/go-socks5"
)

func ss5(nl chan net.Listener){
  conf := &socks5.Config{}
  // fmt.Println(conf)
  server, err := socks5.New(conf)
  if err != nil {
    panic(err)
  }
  // random port "0.0.0.0:0"
  if  err := server.ListenAndServe("tcp", "0.0.0.0:0",nl);err != nil {
    // Create SOCKS5 proxy on port 10080
    // if err := server.ListenAndServe("tcp", "0.0.0.0:10080"); err != nil {
    panic(err)
  }
}

func main() {
  xxx := make(chan net.Listener, 10)
  go ss5(xxx)
  // so get my random port number
  x := <-xxx
  port := x.Addr().(*net.TCPAddr).Port
  fmt.Println(port)
}

hktalent avatar Jun 14 '19 08:06 hktalent