Это из POP3 RFC.
"Ответы на определенные команды являются многострочными. В этих случаях
четко указаны ниже, после отправки первой строки
ответ и CRLF, любые дополнительные строки отправляются, каждая завершается
парой CRLF. Когда все строки ответа отправлены,
отправляется последняя строка, состоящая из октета завершения (десятичного кода
046, ".") И пара CRLF. Если какая-либо строка многострочного ответа
начинается с октета завершения, строка "заполнена байтами"
предварительно ожидая завершения октета в этой строке ответа.
Следовательно, многострочный ответ заканчивается пятью октетами.
"CRLF.CRLF". При проверке многострочного ответа клиент проверяет
чтобы увидеть, начинается ли строка с октета завершения. Если так и если
следуют октеты, отличные от CRLF, первый октет строки (
октет завершения) удаляется. Если это так и если CRLF немедленно
следует за символом завершения, затем ответ от POP
сервер завершен, и строка, содержащая «.CRLF», не рассматривается
часть многострочного ответа. "
Ну, у меня проблема с этим, например, gmail иногда отправляет октет завершения, а затем в СЛЕДУЮЩЕЙ ЛИНИИ отправляет пару CRLF. Например:
"+OK blah blah\r\n"
"blah blah.\r\n"
"\r\n"
Это очень редко, но иногда бывает, поэтому, очевидно, я не могу определить конец сообщения в таком случае, потому что я ожидаю строку, которая состоит из '. \ R \ n'. Серьезно, Gmail нарушает протокол POP3 или я делаю что-то не так? Также у меня есть второй вопрос, английский не мой родной язык, поэтому я не могу понять это полностью:
"Если какая-либо строка многострочного ответа начинается с октета завершения, строка" заполняется байтом ", предварительно ожидая окончания октета до этой строки ответа.
Следовательно, многострочный ответ заканчивается пятью октетами "CRLF.CRLF". "
Когда именно используется CRLF.CRLF? Может кто-нибудь дать мне простой пример? RFC говорит, что используется, когда любая строка ответа начинается с октета завершения. Но я не вижу строк, начинающихся с '.' в сообщениях, оканчивающихся на CRLF.CRLF. Я проверил это. Может я чего-то не понимаю, поэтому и спрашиваю.