Главная страница
    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.039 c
2-1202303072
alexsashkan
2008-02-06 16:04
2008.03.02
Проблема с добавлением строк в DBGrid


2-1202195960
иИи
2008-02-05 10:19
2008.03.02
Полупрозрачность


2-1202206388
@WooF
2008-02-05 13:13
2008.03.02
Sy576


8-1174744468
VitAngel
2007-03-24 16:54
2008.03.02
Снимок с Вебкамеры


15-1196204041
KilkennyCat
2007-11-28 01:54
2008.03.02
А "Орешник" все-таки жалко.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский