Форум: "Сети";
Текущий архив: 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