github.com/kelleygo/clashcore@v1.0.2/transport/hysteria/conns/faketcp/tcp_test.go (about)

     1  //go:build linux
     2  // +build linux
     3  
     4  package faketcp
     5  
     6  import (
     7  	_ "net/http/pprof"
     8  )
     9  
    10  //const testPortStream = "127.0.0.1:3456"
    11  //const testPortPacket = "127.0.0.1:3457"
    12  
    13  const testPortStream = "127.0.0.1:3456"
    14  const portServerPacket = "[::]:3457"
    15  const portRemotePacket = "127.0.0.1:3457"
    16  
    17  //func init() {
    18  //	startTCPServer()
    19  //	startTCPRawServer()
    20  //	go func() {
    21  //		log.Println(http.ListenAndServe("0.0.0.0:6060", nil))
    22  //	}()
    23  //}
    24  //
    25  //func startTCPServer() net.Listener {
    26  //	l, err := net.Listen("tcp", testPortStream)
    27  //	if err != nil {
    28  //		log.Panicln(err)
    29  //	}
    30  //
    31  //	go func() {
    32  //		defer l.Close()
    33  //		for {
    34  //			conn, err := l.Accept()
    35  //			if err != nil {
    36  //				log.Println(err)
    37  //				return
    38  //			}
    39  //
    40  //			go handleRequest(conn)
    41  //		}
    42  //	}()
    43  //	return l
    44  //}
    45  //
    46  //func startTCPRawServer() *TCPConn {
    47  //	conn, err := Listen("tcp", portServerPacket)
    48  //	if err != nil {
    49  //		log.Panicln(err)
    50  //	}
    51  //	err = conn.SetReadBuffer(1024 * 1024)
    52  //	if err != nil {
    53  //		log.Println(err)
    54  //	}
    55  //	err = conn.SetWriteBuffer(1024 * 1024)
    56  //	if err != nil {
    57  //		log.Println(err)
    58  //	}
    59  //
    60  //	go func() {
    61  //		defer conn.Close()
    62  //		buf := make([]byte, 1024)
    63  //		for {
    64  //			n, addr, err := conn.ReadFrom(buf)
    65  //			if err != nil {
    66  //				log.Println("server readfrom:", err)
    67  //				return
    68  //			}
    69  //			//echo
    70  //			n, err = conn.WriteTo(buf[:n], addr)
    71  //			if err != nil {
    72  //				log.Println("server writeTo:", err)
    73  //				return
    74  //			}
    75  //		}
    76  //	}()
    77  //	return conn
    78  //}
    79  //
    80  //func handleRequest(conn net.Conn) {
    81  //	defer conn.Close()
    82  //
    83  //	for {
    84  //		buf := make([]byte, 1024)
    85  //		size, err := conn.Read(buf)
    86  //		if err != nil {
    87  //			log.Println("handleRequest:", err)
    88  //			return
    89  //		}
    90  //		data := buf[:size]
    91  //		conn.Write(data)
    92  //	}
    93  //}
    94  //
    95  //func TestDialTCPStream(t *testing.T) {
    96  //	conn, err := Dial("tcp", testPortStream)
    97  //	if err != nil {
    98  //		t.Fatal(err)
    99  //	}
   100  //	defer conn.Close()
   101  //
   102  //	addr, err := net.ResolveTCPAddr("tcp", testPortStream)
   103  //	if err != nil {
   104  //		t.Fatal(err)
   105  //	}
   106  //
   107  //	n, err := conn.WriteTo([]byte("abc"), addr)
   108  //	if err != nil {
   109  //		t.Fatal(n, err)
   110  //	}
   111  //
   112  //	buf := make([]byte, 1024)
   113  //	if n, addr, err := conn.ReadFrom(buf); err != nil {
   114  //		t.Fatal(n, addr, err)
   115  //	} else {
   116  //		log.Println(string(buf[:n]), "from:", addr)
   117  //	}
   118  //}
   119  //
   120  //func TestDialToTCPPacket(t *testing.T) {
   121  //	conn, err := Dial("tcp", portRemotePacket)
   122  //	if err != nil {
   123  //		t.Fatal(err)
   124  //	}
   125  //	defer conn.Close()
   126  //
   127  //	addr, err := net.ResolveTCPAddr("tcp", portRemotePacket)
   128  //	if err != nil {
   129  //		t.Fatal(err)
   130  //	}
   131  //
   132  //	n, err := conn.WriteTo([]byte("abc"), addr)
   133  //	if err != nil {
   134  //		t.Fatal(n, err)
   135  //	}
   136  //	log.Println("written")
   137  //
   138  //	buf := make([]byte, 1024)
   139  //	log.Println("readfrom buf")
   140  //	if n, addr, err := conn.ReadFrom(buf); err != nil {
   141  //		log.Println(err)
   142  //		t.Fatal(n, addr, err)
   143  //	} else {
   144  //		log.Println(string(buf[:n]), "from:", addr)
   145  //	}
   146  //
   147  //	log.Println("complete")
   148  //}
   149  //
   150  //func TestSettings(t *testing.T) {
   151  //	conn, err := Dial("tcp", portRemotePacket)
   152  //	if err != nil {
   153  //		t.Fatal(err)
   154  //	}
   155  //	defer conn.Close()
   156  //	if err := conn.SetDSCP(46); err != nil {
   157  //		log.Fatal("SetDSCP:", err)
   158  //	}
   159  //	if err := conn.SetReadBuffer(4096); err != nil {
   160  //		log.Fatal("SetReaderBuffer:", err)
   161  //	}
   162  //	if err := conn.SetWriteBuffer(4096); err != nil {
   163  //		log.Fatal("SetWriteBuffer:", err)
   164  //	}
   165  //}
   166  //
   167  //func BenchmarkEcho(b *testing.B) {
   168  //	conn, err := Dial("tcp", portRemotePacket)
   169  //	if err != nil {
   170  //		b.Fatal(err)
   171  //	}
   172  //	defer conn.Close()
   173  //
   174  //	addr, err := net.ResolveTCPAddr("tcp", portRemotePacket)
   175  //	if err != nil {
   176  //		b.Fatal(err)
   177  //	}
   178  //
   179  //	buf := make([]byte, 1024)
   180  //	b.ReportAllocs()
   181  //	b.SetBytes(int64(len(buf)))
   182  //	for i := 0; i < b.N; i++ {
   183  //		n, err := conn.WriteTo(buf, addr)
   184  //		if err != nil {
   185  //			b.Fatal(n, err)
   186  //		}
   187  //
   188  //		if n, addr, err := conn.ReadFrom(buf); err != nil {
   189  //			b.Fatal(n, addr, err)
   190  //		}
   191  //	}
   192  //}