Я использую asyncore для связи с удаленными серверами по протоколу типа «длина: сообщение». Может кто-нибудь порекомендовать мне способ прочитать точное количество байтов из сокета? Я пытался использовать handle_read для заполнения внутреннего буфера и каждый раз вызывать мою функцию, проверяя размер буфера, но это выглядело слишком уродливо (Проверьте, достаточно ли длинен буфер для чтения длины, проверьте, больше ли длина буфера, чем длина сообщения, прочитайте сообщение и т.д ...). Возможно ли иметь что-то вроде «socket.read (bytes)», которое будет спать, пока буфер не будет достаточно заполнен и не вернет значение?