Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2008.03.02;
Скачать: [xml.tar.bz2];

Вниз

Проблемы с ASender.Thread.Connection в Indy 9   Найти похожие ветки 

 
samael6 ©   (2007-06-05 21:29) [0]

Такая проблема: у меня почтовый сервер и все нормально, если не отсылать клиенту большие письма :)
Полностью они до него не доходят. Я отправляю все письмо по строчно, и многие строки теряются. Но если сделать задержку после каждой посылки, то все дойдет.
Вот код:

ASender.Thread.Connection.WriteLn("+OK " + IntToStr(intSize) + " octets");
for i := 0 to MessageStrings.Count - 1 do begin
   ASender.Thread.Connection.Writeln(MessageStrings.Strings[i]);
end;

где, intSize - integer: размер письма;
     MessageStrings - TStrings: само письмо построчно.
Если в тело цикла вставить sleep(1), то все пойдет, но слишком медленно.

Что я не учел?
Спасибо


 
Сергей М. ©   (2007-06-06 08:12) [1]


> samael6 ©   (05.06.07 21:29)


В чем прелесть изобретения велосипеда ?
Ведь есть же готовый компонент - TIdPOP3Server ..


 
Samael6 ©   (2007-06-06 13:23) [2]

Да, именно через него я это и делаю.
Из-под обработчика OnRETR.


 
Сергей М. ©   (2007-06-06 14:37) [3]


> Полностью они до него не доходят


Показывай как принимаешь письма на стороне клиента ..


 
Samael6 ©   (2007-06-06 16:56) [4]

Клиент - The Bat!


 
Сергей М. ©   (2007-06-07 12:53) [5]


> Клиент - The Bat!


А здесь

http://delphimaster.net/view/6-1181070583/

ты почему-то ведешь речь о собственном клиенте ..


 
Samael6 ©   (2007-06-07 16:25) [6]

Нет,
это разные ветки и разные проблемы с разными программами


 
Сергей М. ©   (2007-06-07 16:26) [7]


> многие строки теряются


"Многие" - это какие ?

Какова закономерность ?


 
Samael6 ©   (2007-06-07 19:59) [8]

Закономерности ворде нет, похоже что буфер сокета не успевает отчищаться (выгребаться), и следовательно происходит перезатирание предыдущего значения.
По крайней мере так оно смотрится, а лечение путем задержки это только подтверждает.
Может как-то можно определить, произошло ли чтение из сокета и готов ли он уже к новой порции данных?


 
Сергей М. ©   (2007-06-08 08:25) [9]


> Samael6 ©   (07.06.07 19:59) [8]


> буфер сокета не успевает отчищаться (выгребаться), и следовательно
> происходит перезатирание предыдущего значения


Ерунда полнейшая.
Инди использует синхронный транспортный режим.
А подобного рода засада может поджидать только в асинхронном режиме.


> Может как-то можно определить, произошло ли чтение из сокета
> и готов ли он уже к новой порции данных?


На прикладном уровне нельзя.
Да и не нужно это.
Потому что TCP - поточный протокол.


 
Samael6 ©   (2007-06-08 13:51) [10]

Так в чем же тогда трабла?
Может клиент не готов к приему письма построчно и ему нужно передавать блоково? Аля, сначала хидер, затем боди и никак иначе?
Возможно ли такое? Или проблема в другом?


 
Сергей М. ©   (2007-06-08 14:06) [11]


> Samael6 ©   (08.06.07 13:51) [10]


Ну есть же демо-проект в составе Инди с использованием поп3-сервера, почему не сравнить его со своим ?


 
Samael6 ©   (2007-06-08 14:54) [12]

Он практически пустой. Только немного комментария и построчная отправка простого письма клиенту. У меня все тоже самое, но письма не такие мелкие...


 
Сергей М. ©   (2007-06-08 16:28) [13]

Т.е. ты утверждаешь, что если чуть подправить демо-проект в части отправки твоих "крупных" писем, то возникает та же самая проблема ?

А версия Инди какая ?


 
Samael6 ©   (2007-06-08 19:21) [14]

9 (см. тему ветки)



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2008.03.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.044 c
15-1200218991
Kolan
2008-01-13 13:09
2008.03.02
Рефакторин Extract resource string работает не так как ожидается.


2-1202463717
гость
2008-02-08 12:41
2008.03.02
обработчик кнопки в чужом приложении


15-1201332607
Sergey Masloff
2008-01-26 10:30
2008.03.02
Еще про WinXP но не оффтопик


3-1192099082
9899100
2007-10-11 14:38
2008.03.02
запрос ? :(


15-1201497785
azamatufa
2008-01-28 08:23
2008.03.02
FireBird download files - что такое ...._pdb.zip ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский