2010-04-24 40 views
0

我正在爲pop3做一個客戶端,不知何故我無法弄清楚如何處理多行響應。無論是單線還是多線,服務器的響應都沒有區別,它總是以CRLF結尾(考慮通常情況),所以如何知道是否應該再次調用recv()?pop3多行問題

+3

考慮到用戶名「stupid_idiot」,在回答這個問題上浪費時間毫無意義。 – sbi 2010-04-24 22:08:30

回答

2

可以跨越多行(例如電子郵件的內容)的響應在the POP3 RFC中標識爲如此。

多行響應的最後一行只包含一個點「。」。

因此,尋找"\r\n.\r\n"

最後一行是結束標誌。這不是實際信息的一部分。

+0

是的,但第一個沒有,我不知道即將到來的迴應是否會繼續。我的意思是我不知道它是否只是一行或更多 – Pyjong 2010-04-24 22:20:07

+0

@stupid_idiot只要繼續調用recv(),直到看到結束標記。你無法預知何時會結束。 – 2010-04-24 22:26:07

+0

那麼,我理解Alexandre的方式,如果只有一行,那麼第一個也是最後一個 - 並且應該以點結束。從中可以看出,如果不是以點結束,那不是最後一個,因此也不是唯一的一個。 '<再次閱讀>'嗯,那肯定是合乎邏輯的。問題在哪裏,呃,我明白了。沒關係。 – sbi 2010-04-24 22:28:49