package main import ( "github.com/TransX/log" "net" "testing" "time" ) func server(t *testing.T) { listener, err := net.Listen("tcp4", "127.0.0.1:1244") if err != nil { t.Fatal(err) } for { conn, err := listener.Accept() log.Info("Test Server Incoming %s", conn.RemoteAddr().String()) if err != nil { t.Fatal(err) } bytes := make([]byte, 32) n, err := conn.Read(bytes) log.Info("Test Server Receive %s", string(bytes[:n])) _, err = conn.Write([]byte("OK")) log.Info("Test Server write") if err != nil { t.Fatal(err) } conn.Close() log.Info("Test Server closed") } } func client(t *testing.T) { for { conn, err := net.Dial("tcp4", "127.0.0.1:1200") if err != nil { t.Fatal(err) } conn.Write([]byte("Client")) log.Info("Test Client write") bytes := make([]byte, 32) n, err := conn.Read(bytes) log.Info("Test Client read") if err != nil { t.Fatal(err) } log.Info("Test Client Receive %s", bytes[:n]) time.Sleep(time.Second * 2) conn.Close() log.Info("Test Client closed") } } func TestTunnel(t *testing.T) { log.LogTo("log.txt", "DEBUG") log.Info("Test Start testing.") go server(t) go client(t) trans1 := NewTransTCP() go trans1.Start("1200", "127.0.0.1", "1201", "client") trans2 := NewTransTCP() trans2.Start("1201", "127.0.0.1", "1244", "server") }