package main func StartTunnel(sourceIP, desIP, desPort string) { remoteAddr := make(chan net.Addr) transSrcToDes := NewTransTCP() transSrcToDes.CreateTCPListener("0.0.0.0", desPort) transSrcToDes.CreateTCPClient(desIP, desPort) go transSrcToDes.Start(remoteAddr) sourcePort := <-remoteAddr transDesToSrc := NewTransTCP() transDesToSrc.CreateTCPListener("0.0.0.0", sourcePort) transSrcToDes.CreateTCPClient(sourceIP, sourcePort) go transDesToSrc.Start() c := make(chan byte) <-c }