Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 26.01.2008, 23:11   #1
dimon000
Пользователь
 
Регистрация: 09.01.2008
Сообщений: 30
По умолчанию "Connection Closed Gracefully." Что это значит?

Пишу программу по отправке почты на Delphi. Использую IdSMTP. Сложно точно сказать, на какой строке появляется данная ошибка, но не подскажете, что она обозначает?
"Connection Closed Gracefully."
dimon000 вне форума Ответить с цитированием
Старый 27.01.2008, 00:57   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Смысл ошибки в том, что не до конца завершен предыдущий сеанс со стороны сервера (как я понимаю). Возможен и другой вариант - сервер закрыл сокет по тайм-ауту... А вы думаете, что до сих пор соединены.
Попробуйте перед коннектом делать принудительный IdSMTP.Disconnect. На всякий случай.
Должно помочь...
Если интересно, почитайте статейку на эту тему:
www.swissdelphicenter

Последний раз редактировалось mihali4; 27.01.2008 в 01:12.
mihali4 вне форума Ответить с цитированием
Старый 27.01.2008, 11:45   #3
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Не совсем так.
Connection Closed Gracefully. это не ошибка.
Это сообщение вашего клиента о закрытии соединения. Причем успешном и без ошибок.
Если у вас данное сообщение появляется после отправки сообщения, в этом нет ничего страшного это лишь означает что ваша сессия с серверром успешно окончена. Обрабатывайте это сообщение и все )
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 27.01.2008, 11:52   #4
dimon000
Пользователь
 
Регистрация: 09.01.2008
Сообщений: 30
По умолчанию

Дело в том, что мне нужно отправить несколько сообщений (около 10). Не подскажете, как поступить?
dimon000 вне форума Ответить с цитированием
Старый 27.01.2008, 12:30   #5
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Одно сообщение- одна сессия
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 27.01.2008, 12:57   #6
dimon000
Пользователь
 
Регистрация: 09.01.2008
Сообщений: 30
По умолчанию

Спасибо, попробую.

Делаю так: в событиии IdSMTP1.OnDisconnected пишу код:
Код:
IdSMTP1.Connect(3000);
Однако не помогает. Есть ещё какие-нибудь варианты?

Последний раз редактировалось KORN; 07.02.2009 в 08:15. Причина: пользуемся правкой
dimon000 вне форума Ответить с цитированием
Старый 27.01.2008, 19:51   #7
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Что значит "не помогает" ?
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 28.01.2008, 17:30   #8
dimon000
Пользователь
 
Регистрация: 09.01.2008
Сообщений: 30
По умолчанию

Установил один очень любопытный факт. По моему замыслу, программа должна срабатывать в начале каждого часа, в 00 минут 00 секунд. В этом случае ошибка "Connection Closed Gracefully." появляется. Однако во время тестирования я перенастраивал программу срабатывать в начале ближайшей минуты. И всё работало! Не идеально, конечно, баги имелись, но e-mail очень даже неплохо отправлялся! Это у меня лично Delphi глючит, или так и задумано?
dimon000 вне форума Ответить с цитированием
Старый 07.02.2009, 03:12   #9
Viteef
stopfake.org
Участник клуба
 
Регистрация: 03.05.2007
Сообщений: 1,927
По умолчанию

Продожение http://programmersforum.ru/showthread.php?t=6930

Лог исключений в моем цикле:
Цитата:
Host not found.(2) new-land.info
Socket Error # 10061
Connection refused.(3) nfo-underground.info
Connection Closed Gracefully.(2) newliveportal.com
Connection Closed Gracefully.(2) newrey.org
Connection Closed Gracefully.(2) news.armyani.net
Connection Closed Gracefully.(2) news.a-tex.com.ua
Connection Closed Gracefully.(2) news.brandpro.ru
и т.д.
Когда впервые происходит Connection Closed Gracefully для всех оставшихся сайтов в цикле выбивает Connection Closed Gracefully, при этом GET'а не происходит, и цикл мгновенно пробегает до конца.

Что посоветуете предпринять?

//сунул в обработку исключения disconnect, попробую еще погонять прогу.

Последний раз редактировалось Viteef; 07.02.2009 в 03:58.
Viteef вне форума Ответить с цитированием
Старый 07.02.2009, 11:41   #10
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

в Indy в старших версиях в Idhttp есть метод checkforgrace<чего-то там>
который,собственно, и призван возвращать статус соединения
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Ответ
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при использовании OlePropertyGet("Documents").OleProcedure("Add") в C++ Builder AleksP C++ Builder 7 11.04.2009 13:06
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 06:51
Excel файл открывается не "до конца" (странички "не показываются" только серое поле) Dorvir Microsoft Office Excel 2 28.03.2008 11:03
Создаю диаграмму "Bar". Подскажите как убрать растояние между "столбами" MAcK Компоненты Delphi 11 24.10.2007 10:49