На самом деле существует открытый PR, связанный с этим, однако он был открыт с 2022 года. Автор прокомментировал предполагая, что они пришли к выводу, что метод peek не предусмотрен по замыслу.
В любом случае, какую альтернативу можно использовать для получения этой функциональности?
Автор того же PR предложил вместо этого использовать объект io.BufferedReader. Однако это кажется странным выбором, поскольку он асимметричен. Другими словами, он не поддерживает функции типа чтения и записи.
Существует еще один класс, io.BufferedRandom, который, по-видимому, наследуется от обоих io.BufferedReader< /code> и io.BufferedWriter.
Я думал, что это может быть подходящей альтернативой, но не могу понять, как ее следует использовать.
Если Я пытаюсь создать пустой io.BufferedRandom, получаю сообщение об ошибке: отсутствует обязательный аргумент «raw».
Код: Выделить всё
buffer = io.BufferedRandom()
Возможно, я смотрю совершенно не в том месте и не в том месте. библиотека.
Мне нужен какой-то буферный объект, который я могу читать, писать и просматривать. Предполагаемый вариант использования — упростить чтение из сокета. Поскольку вызов Recv в сокете может возвращать любое количество байтов, моя идея состоит в том, чтобы использовать буфер для хранения полученных данных до тех пор, пока их не станет достаточно для интерпретации того, что было получено.
Подробнее здесь: https://stackoverflow.com/questions/792 ... an-be-used