github.com/cristalhq/netx@v0.0.0-20221116164110-442313ef3309/example_test.go (about) 1 package netx_test 2 3 import ( 4 "context" 5 "fmt" 6 "time" 7 8 "github.com/cristalhq/netx" 9 ) 10 11 func ExampleTCP() { 12 ctx, cancel := context.WithTimeout(context.Background(), time.Second) 13 defer cancel() 14 15 ln, err := netx.NewTCPListener(ctx, "tcp", "127.0.0.1:8099", netx.TCPListenerConfig{}) 16 checkErr(err) 17 18 stats := ln.Stats() 19 fmt.Printf("total: %d\n", stats.Accepts()) 20 21 go func() { 22 for { 23 conn, err := ln.Accept() 24 checkErr(err) 25 26 fmt.Printf("from: %v\n", conn.LocalAddr()) 27 } 28 }() 29 } 30 31 func checkErr(err error) { 32 if err != nil { 33 panic(err) 34 } 35 }