Всем привет.
Вопрос тем кто когда-то писал почтовые клиенты.
Проблема в том что,некоторые pop3 сервера(в частности tpop3d) немного врут при указании размера письма.реакция на команду LIST обычно такова
1 456
хотя реальный размер письма больше указаного на 45-50 байтов.
То есть при чтении из сокета 456 байт(recv(sfd,buf,456,0)

начинается жуткое ожидание конца света которое может продолжаться бесконечно

.размер буфера для письма я выделяю динамически,так шо мне критичны ети 45-50 байтов.А если их не приплюсовать(ети самые 50 байтов),то письмо вытягивается не полностью.Вот.Как полностью вытянуть письмо?Если кто-то знает какоето оптимальное решение — поделитесь.
Здравствуйте, dvzhossan, Вы писали:
D>Всем привет.
D>Вопрос тем кто когда-то писал почтовые клиенты.
D>Проблема в том что,некоторые pop3 сервера(в частности tpop3d) немного врут при указании размера письма.реакция на команду LIST обычно такова
D>1 456
D>хотя реальный размер письма больше указаного на 45-50 байтов.
RFC1319:
It is important to note that the octet count for a message on the
server host may differ from the octet count assigned to that message
due to local conventions for designating end-of-line.
Оно?
Здравствуйте, dvzhossan, Вы писали:
D>Всем привет.
D>Вопрос тем кто когда-то писал почтовые клиенты.
D>Проблема в том что,некоторые pop3 сервера(в частности tpop3d) немного врут при указании размера письма.реакция на команду LIST обычно такова
D>1 456
D>хотя реальный размер письма больше указаного на 45-50 байтов.
Они не врут, на серверах письмо действительно такого размера, просто за счет переводов строки на компе-клиенте оно другого размера.
D>То есть при чтении из сокета 456 байт(recv(sfd,buf,456,0)
начинается жуткое ожидание конца света которое может продолжаться бесконечно
.размер буфера для письма я выделяю динамически,так шо мне критичны ети 45-50 байтов.А если их не приплюсовать(ети самые 50 байтов),то письмо вытягивается не полностью.Вот.Как полностью вытянуть письмо?Если кто-то знает какоето оптимальное решение — поделитесь.
Правильный вариант читать до тех пор пока не встретится строка, состоящая из одной точки....