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

Вниз

IdFTP - плавающие ошибки Socket Error # 10061 и 10054   Найти похожие ветки 

 
Michael   (2008-11-25 22:27) [0]

Доброго времени суток, форумчане!
Излагаю суть проблемы: имею проект, обращающийся к FTP-серверу на основе компонента TIdFTP. До недавнего времени все работало. Вчера начали появляться плавающие ошибки Socket Error # 10061 и # 10054. Привожу место в листинге, где появляется ошибка:
// соединяемся
   try
      f_Main.IdFTP1.Connect;
   except
      on e: Exception do begin
        // Это моя процедура отображения хода работы:
        f_Main.SendToReport(etWarning, "Соединение не установлено!" + " Ошибка: " + e.Message);
        Exit;
      end;
   end;

Ошибка не является постоянной, иногда соединения проходят. Закономерность установить не удалось.
Искал в поисковиках по запросу "Socket Error # 10061".
На MSDN"е нашел расшифровку ошибок, где говорится, что
"10054  WSAECONNRESET ConnectionReset - Соединение было прервано удаленным компьютером;
10061 WSAECONNREFUSED ConnectionRefused - Соединение отклонено удаленным хостом. Это может произойти, если удаленный хост отключен или если он занят, а очередь запросов заполнена"
На тематических форумах нашел похожие проблемы, но в основном, связанные с TClient/ServerSocket. В основном советовалось проверить настройки брандмауэра или установить одинаковые порты на клиенте и сервере.
Брандмауэр Windows отключен, сторонний не используется.
Прошу помочь советом: можно ли избавится от этих ошибок и что можно сделать в моем случае для установления соединения в случае появления вышеуказанных ошибок?
Спасибо, что прочли вопрос. Если необходимо, выложу недостающие участки кода.


 
Palladin ©   (2008-11-26 08:14) [1]


> что можно сделать в моем случае для установления соединения
> в случае появления вышеуказанных ошибок?

ничего, эти ошибки не является ошибками программиста


 
Palladin ©   (2008-11-26 08:14) [2]

ну разве что, ты не обращаешься на несуществующий сервер... или указал неверный порт...


 
Michael   (2008-11-26 08:39) [3]

Еще возник параллельный вопрос:
как можно идентифицировать описанные ошибки?
Пока ничего кроме сравнения e.Message со строками сообщений об ошибках, в голову не приходит. А, скажем, код ошибки можно получить? Что потом, например, можно было свои сообщения пользователю отображать в зависимости от типа возникшего исключения.


 
Сергей М. ©   (2008-11-26 08:52) [4]

on e: Exception do ShowMessage(e.ClassName + " " + e.Message)


 
Michael   (2008-11-26 09:15) [5]


> Сергей М. ©   (26.11.08 08:52) [4]
> on e: Exception do ShowMessage(e.ClassName + " " + e.Message)

Извините, если непонятно выразился в предыдущем посте. Объясню на примере. Сейчас дифференцировать ошибки приходится так:

on e: Exception do begin
       if e.ClassName = "EIdConnectException" then ...

что не кажется мне правильным. Тем более, не могу найти все значения ClassName"ов. Искал в SysUtils"ах, где описан класс Exception.


 
Palladin ©   (2008-11-26 09:32) [6]

будь проще, прочитай справку про try/except

on e:EIdConnectException do begin

с какого перепугу классы исключений библиотеки Indy будут в SysUtils ?


 
Michael   (2008-11-26 09:47) [7]


> с какого перепугу классы исключений библиотеки Indy будут
> в SysUtils ?

Спасибо! Я забыл подключить IdException...

A по теме ветки - ничего, кроме смены FTP-сервера, получается, в этой ситуации сделать нельзя?


 
Сергей М. ©   (2008-11-26 10:27) [8]


> ничего, кроме смены FTP-сервера, получается, в этой ситуации
> сделать нельзя?


А их у тебя разве косой десяток ?

Я так понимаю, что тебе требуется достучаться до какого-то конкретного, который "капризничает", а не до любого..


 
Michael   (2008-11-26 11:04) [9]


> А их у тебя разве косой десяток ?Я так понимаю, что тебе
> требуется достучаться до какого-то конкретного, который
> "капризничает", а не до любого..

Совершенно верно. Поэтому сейчас я и не знаю, что делать. Единственное достижение - это то, что ошибка 10061 перестала быть "плавающей". Сегодня - 100% попыток присоединиться к FTP-серверу завершились именно так. Что можно сделать в этой ситуации? Как проверить - "жив" еще сервер или нет? Как узнать - не сменили ли на днях у него порт доступа (21, как и убольшинства фтп-шников)?


 
Palladin ©   (2008-11-26 11:15) [10]


>  Как узнать - не сменили ли на днях у него порт доступа
> (21, как и убольшинства фтп-шников)?

позвонить администратору сервера


 
Сергей М. ©   (2008-11-26 11:16) [11]


> Как узнать - не сменили ли на днях у него порт доступа


Кроме сканирования активных портов с попыткой обращения к каждому найденному по ftp - никак.


> 100% попыток присоединиться к FTP-серверу завершились именно
> так


Именно как ? С ошибкой 100061 ?


 
Michael   (2008-11-26 11:24) [12]


> позвонить администратору сервера

Юзаю бесплатный FTP-сервер, звонить, собственно, некому (

> Именно как ? С ошибкой 100061 ?

Нет. Текст по  e.Message приходит следующий: Socket Error # 10061
Connection refused.


 
Palladin ©   (2008-11-26 11:28) [13]


> Юзаю бесплатный FTP-сервер, звонить, собственно, некому
> (

в каком смысле бесплатный? находящийся на каком"то хосте в интернете? что"ж тут удивлятся ошибкам...


 
Сергей М. ©   (2008-11-26 11:35) [14]


> Connection refused


Верь глазам своим - попытка соединения отвергнута сервером.

А вот ошибка с кодом 100054 возникает уже после успешного коннекта, и она означает партнер по соединению закрыл соединение по своей инициативе, в момент когда ты осуществляешь попытку инф.обмена с ним.


 
Michael   (2008-11-26 11:48) [15]


> в каком смысле бесплатный? находящийся на каком"то хосте
> в интернете? что"ж тут удивлятся ошибкам...

Именно так. К этому и относилась мысль, что видимо, придется перейти на какой-нибудь платный сервер. Хоть позвонить в случае чего будет кому...
> Верь глазам своим - попытка соединения отвергнута сервером.
> А вот ошибка с кодом 100054 возникает уже после успешного
> коннекта, и она означает партнер по соединению закрыл соединение
> по своей инициативе, в момент когда ты осуществляешь попытку
> инф.обмена с ним.

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


 
Palladin ©   (2008-11-26 11:57) [16]


> Т. е. как  достучаться до  сервера, если он отклоняет соединения?

это типа "как же войти в дверь? а там какой то мужик меня не пускает" :)


 
Сергей М. ©   (2008-11-26 11:58) [17]


> Michael   (26.11.08 11:48) [15]


А сам хост-то, на котором работает ftp-сервер, доступен ?
Ты его пинговал-трассировал ?
И что говорит стандартный виндовый telnet-клиент по поводу попытки

open имя_или_адрес_хоста_с_FTP_сервером 21

?


 
Anatoly Podgoretsky ©   (2008-11-26 13:26) [18]

> Michael  (26.11.2008 11:24:12)  [12]

Так ты хакер? Хакерам вход на сервер не разрешен.


 
Michael   (2008-11-26 14:19) [19]


> А сам хост-то, на котором работает ftp-сервер, доступен
> ?

Да, доступен. Более того, я могу зайти на FTP-сервер через панель управления сайтом. Настройки никакие не менял, а "извне" достучаться стало невозможно.


> Так ты хакер? Хакерам вход на сервер не разрешен.

Что ж Вы так сразу? Я тут в поисках ответа книгу "Indy in depth" прочел...)))


 
Сергей М. ©   (2008-11-26 14:46) [20]


> могу зайти на FTP-сервер через панель управления сайтом


Это как ?
Рассказывай подробно ..


 
Michael   (2008-11-26 20:29) [21]


> Это как ?Рассказывай подробно ..

Сорри перед модераторами, если нарушаю права на рекламу сайтов и все такое...
Вобщем, пользуюсь системой (если так ее можно называть) ucoz.ru. Там можно в домене второго уровня создать бесплатный сайт. В частности, имеется возможность организовать на этом сайте (опять же, если корректно так выражаться) - FTP сервер. Управление сайтом и FTP сервером ведется через через "панель управления" системы ucoz. Вот как-то так.
В результате имею: через "панель управления" я как на сайт, так и на FTP-сервер зайти могу, а посредством своей программы (впрочем, и через Total Commander) - не могу.
By the way, аналогичным образом только что создал еще один сайт с FTP-сервером (бесплатный, в другом домене 2-го уровня). Все снова заработало.

Однако проблемы не снимает, т.к. я не разобрался в причине возниконовения описанной ситуации, равно как и в путях ее решния...


 
Сергей М. ©   (2008-11-26 21:38) [22]


> через "панель управления" я как на сайт, так и на FTP-сервер
> зайти могу


Ты вообще русский или нерусский ?)
Вопрос же был предельно ясен - изложи подробные свои действия по доступу через "панель управления".. Можешь начать с момента загрузки компьютера)..


 
Michael   (2008-11-27 00:20) [23]


> Ты вообще русский или нерусский ?)

Понимаю, что форум, понимаю, что проблема - лично у меня, но такой наезд кажется чрезмерным и необоснованным. Не хочу переходить на личности... Прецендентов как здесь, так и на схожих форумах достаточно. Продолжать?

> Вопрос же был предельно ясен - изложи подробные свои действия
> по доступу через "панель управления".. Можешь начать с момента
> загрузки компьютера)..

Нажимается кнопка "Power" на системном блоке. Загружается операционная система Windows XP SP3. Подключается интернет. Загружется страница "www.ucoz.ru". Вводится  логин и пароль. Переходится на панель управления сайтом. Переходится в панели управления на страницу "Файловый менеджер". Эта страница позволяет осуществлять управлением FTP-сервером сайта, т.е.: создавать директории, удалять директории, закачивать файлы, удалять файлы и т.д.
После захода ввода пароля и логина и захода в "Файловый менеджер" доступны все действия, которые необходимо производить из моего проекта.
Как то: закачивать файлы, скачивать файлы, удалять файлы.
Достаточно подробно? Если необходимо, могу каждое действие дискретезировать.


 
Сергей М. ©   (2008-11-27 08:20) [24]


> Достаточно подробно?


Вот теперь достаточно.


> Загружется страница "www.ucoz.ru"


Дальше можно было не продолжать.
Ты подключился при этом к HTTP-серверу.
FTP-протоколом при этом даже не пахнет.


 
Anatoly Podgoretsky ©   (2008-11-27 15:12) [25]

> Michael  (26.11.2008 14:19:19)  [19]

> Что ж Вы так сразу?

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


 
Сергей М. ©   (2008-11-27 15:22) [26]


> Anatoly Podgoretsky ©   (27.11.08 15:12) [25]


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

То ли лапшу он (автор) вешал, то ли хостера фтопку ..

А мож его и провайдеры банят на каком-то этапе маршрута ftp-трафика до юкозового сервера)..


 
Michael   (2008-11-28 10:08) [27]


> он же. судя по постам выше. каким-то образом умудрялся
> же успешно коннектиться к штатному FTP-сервису через штатный
> же  FTP-порт ..

Вобщем-то вполне себе стандартными методами коннектился. В течении более 2-х месяцев.
> А мож его и провайдеры банят на каком-то этапе маршрута
> ftp-трафика до юкозового сервера)..

А существует ли возможность определить, на каком участке связи происходит отказ в обслуживании? Имею ввиду, можно ли определить, кто запретил соединение - хостер или провайдер?
Соединение осуществляется через GPRS, если это как-то влияет...


 
Сергей М. ©   (2008-11-28 10:38) [28]


> Michael   (28.11.08 10:08) [27]


> вполне себе стандартными методами коннектился. В течении
> более 2-х месяцев


Вот я читаю юкозовый ФАК и вижу там следующее:

[23] Есть ли у вас возможность закачивать файлы через FTP?
Да, такая возможность есть. Детали FTP подключения вы найдете в разделе "FTP" (главная страница панели управления). Помните, для того чтобы начал работать FTP необходимо подтвердить почтовый адрес и установить пароль для FTP (при первом входе в панель управления).


Приведи сюда дословную цитату  из этих самых "деталей" ..


> существует ли возможность определить, на каком участке связи
> происходит отказ в обслуживании?


3 минуты назад ftp-сервер Юкоза мне успешно ответил:

> telnet ucoz.ru 21

220---------- Welcome to Pure-FTPd ----------
220-You are user number 2 of 100 allowed.
220-Local time is now 10:36. Server port: 21.
220-This is a private system - No anonymous login
220 You will be disconnected after 15 minutes of inactivity.


 
Сергей М. ©   (2008-11-28 10:40) [29]

Обрати внимание на


> You are user number 2 of 100 allowed


Если ты будешь >= 101-ым юзером, то получишь отлуп как раз в виде 10061


 
Michael   (2008-11-28 13:53) [30]


> Приведи сюда дословную цитату  из этих самых "деталей" .
> .

Скопипастил содержимое раздела "FTP детали":

FTP нужен для быстрой и удобной загрузки большого количества файлов на сервер. Для подключения по FTP используйте специальные программы (например: CuteFTP, FTP Commander, FTP Navigator и т.д.). Использовать для этих целей браузер нельзя! Если вам нужно загрузить несколько файлов, то для этого лучше использовать "Файловый менеджер".

Думаю, содержательно...)))

> Если ты будешь >= 101-ым юзером, то получишь отлуп как раз
> в виде 10061

Спасибо большое! О возможности такой ситуации как-то не думал. Видимо, дело было именно в этом, т.к. сейчас снова все работает!

Огромное спасибо всем ответившим!
Думаю, обсуждение можно закрывать.


 
Сергей М. ©   (2008-11-28 15:03) [31]


> Для подключения по FTP используйте специальные программы


> Использовать для этих целей браузер нельзя!


Угу.
Видимо, Коран запрещает)


 
Prizrak   (2009-01-24 08:07) [32]

У меня тоже в локалке стоит фтп сервер с красивой веб оболочкой на основе DowloadEngine. Я тоже на делфях писал к нему клиент такие же проблемы встретил. копал инфу на делфи не помогло потом зашел в настройки фтп, а там их куча огромная. вот и стоит там если чел коннектица более 3 раз в минуту то бан его на определенное время. А када пишешь софт то конешна риконекты постояные обеспечены тестируешь ведь. и там очень много таких опций по защите. или допустим подключился своим софтом потом произошол обрыв а на серве соединение остается. ты перезапускаешь свою прогу и опять конект а та сесия еще не завершена(она завершится автоматом через установленное на серве время) и ты делаешь уже вторую. и так у тебя накапливается куча незакрытых сессий на серве. что тоже у него вызывает подозрение на тебя.
Сори за безобразную формулировку, у мну уважительная причина - похмелиее.


 
имя   (2009-07-06 06:48) [33]

Удалено модератором



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

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

Наверх





Память: 0.55 MB
Время: 0.005 c
2-1313196605
Gu
2011-08-13 04:50
2011.12.04
Запущена ли Delphi IDE


2-1313155354
qow
2011-08-12 17:22
2011.12.04
работа с формой


6-1206535564
XAOC
2008-03-26 15:46
2011.12.04
получить письмо в windows1251


6-1246539062
GanibalLector
2009-07-02 16:51
2011.12.04
Работа с сокетами (теория)


2-1313476457
Cobalt
2011-08-16 10:34
2011.12.04
Left side cannot be assigned to (D2007)





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