Я пытаюсь оптимизировать протокол прикладного уровня, который имеет протокол смешанного режима (линейный протокол для метаинформации, рукопожатия, подтверждения и т. Д. И двоичный файл для данных). В состоянии, когда клиент ожидает ACK, я делаю
async_read_until(socket, buffer, untill_crlf_maxbytes_1024_match_condition, handler);
Где untill_crlf_maxbytes_1024_match_condition
реализовано в соответствии с документом async_read_until здесь .
Здесь идея состоит в том, чтобы прочитать до CR + LF, но подождать, пока будет прочитано только 1024 байта, чтобы в случае появления чего-то похожего на привидение и, если сокет получил мусор, он не продолжал читать.
У меня вопрос: стоит ли в таком сценарии выдавать ошибку из untill_crlf_maxbytes_1024_match_condition
? Как мне вызвать ошибку в этом сценарии? Если нет, то какая лучшая альтернатива?