Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.12.04;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.151 c
2-1313774122
Sega625
2011-08-19 21:15
2011.12.04
record в array of byte


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


1-1274783463
Deltas
2010-05-25 14:31
2011.12.04
Анимация сворачивания окна


15-1312916966
Petr V. Abramov
2011-08-09 23:09
2011.12.04
carrier planning


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