package main import ( "fmt" "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() fmt.Println("Test Server Incoming", conn.RemoteAddr().String()) if err != nil { t.Fatal(err) } bytes := make([]byte, 32) n, err := conn.Read(bytes) fmt.Println("Test Server Receive ", string(bytes[:n])) _, err = conn.Write([]byte("OK")) fmt.Println("Test Server write") if err != nil { t.Fatal(err) } conn.Close() fmt.Println("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")) fmt.Println("Test Client write") bytes := make([]byte, 32) n, err := conn.Read(bytes) fmt.Println("Test Client read") if err != nil { t.Fatal(err) } fmt.Println("Test Client Receive ", string(bytes[:n])) time.Sleep(time.Second * 2) conn.Close() fmt.Println("Test Client closed") } } func TestTunnel(t *testing.T) { // t.Log("Start testing.") fmt.Println("Test Start testing.") go server(t) go client(t) trans := NewTransTCP() trans.Start("1200", "127.0.0.1", "1244") }