2010-04-24 8 views
0

pop3 용 클라이언트를 만들고 있는데 어떻게 든 다중 행 응답을 처리하는 방법을 알 수 없습니다. 서버로부터의 응답에는 단일 또는 다중 행인지 여부에 관계없이 항상 CRLF로 끝나기 때문에 (예 : 일반적인 경우를 고려하여) recv()를 한 번 더 호출해야하는지 어떻게 알 수 있습니까?pop3 multiline problem

+3

사용자 이름 "stupid_idiot"을 고려하면이 질문에 답하는 데 시간을 낭비 할 필요가 없습니다. – sbi

답변

2

두 줄 이상에 걸쳐있을 수있는 응답 (예 : 전자 메일의 내용)은 the POP3 RFC에서 식별됩니다.

여러 줄 응답의 마지막 줄에는 점 "."이 포함됩니다.

그래서 마지막 줄이 종료 표시되는 것을 "\r\n.\r\n"

를 찾습니다. 실제 메시지의 일부가 아닙니다.

+0

하지만 첫 번째 응답은 수신 응답이 계속 될지 여부를 알지 못합니다. 나는 그것이 단지 하나의 라인 이상이 될지 모른다는 것을 의미한다. – Pyjong

+0

@stupid_idiot 그 마커를 볼 때까지 recv()를 계속 호출한다. 끝나면 미리 알 수 없습니다. –

+0

글쎄, 내가 알렉상드르를 이해 한 방식으로, 단 한 줄만 있다면 첫 번째 줄 또한 마지막 줄 - 따라서 점으로 끝나야한다. 그것이 점에서 끝나지 않는다면 그것은 마지막 것이 아니며 따라서 유일한 것이 아닙니다. '다시 읽는다. '글쎄, 확실히 논리적으로 보인다. 문제가 어디 있니? 아 .. 알았어. 신경 쓰지 마. – sbi