NetworkStream no admite operaciones de búsqueda

Estoy creando un servidor proxy simple pero me enfrenté a una situación extraña, tengo el siguiente código:

var clientRequestStream = _tcpClient.GetStream();
var requestHeader = clientRequestStream.GetUtf8String();

GetUtf8String es un método de extensión paraStream clase que lee la secuencia (contieneHttpRequest encabezados). Necesito extraer esos encabezados para acceder al host y a la URL solicitada. Una vez que la lectura de NetworkStream se hace. Necesito realizar una operación de búsqueda y configurar suclientRequestStream.Position = 0; Porque tengo que leer esa secuencia y escribirla en otro control remotoNetworkStream.

No sé cómo debo resolver este problema. Cualquier consejo será útil.

Editar: También intenté copiar NetworkStream a MemoryStream y luego realizar una operación de búsqueda en MemoryStream. No hay excepción, pero cuando quiero leer desde NetworkStream, su búfer siempre está vacío.

También utilicé reflector para ver qué pasa dentro.Stream.CopyTo. Ver código abajo:

    private void InternalCopyTo(Stream destination, int bufferSize)
    {
        int num;
        byte[] buffer = new byte[bufferSize];
        while ((num = this.Read(buffer, 0, buffer.Length)) != 0)
        {
            destination.Write(buffer, 0, num);
        }
    }

Esto es lo que CopyTo haciendo. Incluso si usoCopyTo El problema sigue sin resolverse. Porque lee la fuente (aquí NetworkStream) hasta el final. ¿Hay otra forma de manejar esta situación?

Respuestas a la pregunta(4)

Su respuesta a la pregunta