code: func DualPipeNetConn(srcAddr net.Addr, dstAddr net.Addr) (*PipeNetConn, *PipeNetConn) {
  	server, client := net.Pipe()
  
  	serverConn := NewPipeNetConn(server, server, server, dstAddr, srcAddr)
  	clientConn := NewPipeNetConn(client, client, client, srcAddr, dstAddr)
  
  	return serverConn, clientConn
  }
docs: // DualPipeAddrConn creates a net.Pipe to connect a client and a server. The
  // two net.Conn instances are wrapped in an addrConn which holds the source and
  // destination addresses.