NetworkStream не поддерживает операции поиска

Я создаю простой прокси-сервер, но столкнулся со странной ситуацией, я написал следующий код:

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

GetUtf8String это метод расширения дляStream класс, который читает поток (содержитHttpRequest заголовки). Мне нужно извлечь эти заголовки для доступа к хосту и запрошенному URL. После того, как чтение NetworkStream завершено. Мне нужно выполнить операцию поиска и установить ееclientRequestStream.Position = 0; потому что я хочу прочитать этот поток и записать его на другой пультNetworkStream.

Я не знаю, как мне решить эту проблему. Любой совет будет вам полезен.

Edit: Я также попытался скопировать NetworkStream в MemoryStream, а затем выполнить операцию поиска в MemoryStream. Нет исключения, но когда я хочу прочитать из NetworkStream, его буфер всегда всегда пуст.

Также я использовал отражатель, чтобы увидеть, что происходит внутриStream.CopyTo, Смотрите ниже код:

    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);
        }
    }

Это то, что делает CopyTo. Даже если я используюCopyTo Проблема до сих пор не решена. Потому что он читает источник (здесь NetworkStream) до конца. У меня есть другой способ справиться с этой ситуацией?

Ответы на вопрос(4)

Ваш ответ на вопрос