github.com/traefik/yaegi@v0.15.1/_test/issue-1330.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  	"io"
     6  	"net"
     7  )
     8  
     9  type wrappedConn struct {
    10  	net.Conn
    11  }
    12  
    13  func main() {
    14  	_, err := net.Listen("tcp", "127.0.0.1:49153")
    15  	if err != nil {
    16  		panic(err)
    17  	}
    18  
    19  	dialer := &net.Dialer{
    20  		LocalAddr: &net.TCPAddr{
    21  			IP:   net.ParseIP("127.0.0.1"),
    22  			Port: 0,
    23  		},
    24  	}
    25  
    26  	conn, err := dialer.Dial("tcp", "127.0.0.1:49153")
    27  	if err != nil {
    28  		panic(err)
    29  	}
    30  	defer conn.Close()
    31  
    32  	t := &wrappedConn{conn}
    33  	var w io.Writer = t
    34  	if n, err := w.Write([]byte("hello")); err != nil {
    35  		fmt.Println(err)
    36  	} else {
    37  		fmt.Println(n)
    38  	}
    39  }
    40  
    41  // Output:
    42  // 5