¿Cómo usar Proxy con TcpClient.ConnectAsync ()?

La compatibilidad con proxy HTTP en .NET en realidad no es compatible con las clases de nivel inferior como TcpClient o Socket. Pero quiero conectar un TCPServer (ip, puerto) a través de un proxy HTTP que admita el comando 'CONECTAR'.

Entonces necesito hacer los siguientes pasos:

Conéctate al proxy.EnviarCONNECT Host:Port HTTP/1.1<CR><LF>Enviar<CR><LF>Espera una línea de respuesta. Si contieneHTTP/1.X 200, la conexión es exitosa.Lea más líneas de respuesta hasta recibir una línea vacía.Está conectado al mundo exterior a través de un proxy. Cualquier intercambio de datos posible con proxy.

En realidad hago esto sin proxy

    TcpClient _client;
    NetworkStream _stream;

    public static async Task<bool> ConnectAsync(string hostname, int port)
    {
        _client = new TcpClient();
        await _client.ConnectAsync(hostname, port).ConfigureAwait(false);
        _stream = conn._client.GetStream();

        ..... Do some stuff

        // Connexion OK
        return true;
    }

¿Cómo puedo usar proxy y credenciales antes de conectar TcpClient?

Respuestas a la pregunta(1)

Su respuesta a la pregunta