Это из 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. Я это проверил. Может я чего-то не понимаю, поэтому и спрашиваю.