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  }