Форум: "Сети";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
ВнизCONNECTION CLOSED GRACEFULLY Найти похожие ветки
← →
Pul (2005-10-06 12:25) [0]Использую Indy TIdFTP.
Возникает ошибка при попытке поключения. При этом с помощью того же даже Far"a подключиться можно без проблем. Подскажите чем это лечится?
← →
Андрей Жук © (2005-10-06 13:06) [1]А ты уверен, что это ошибка?
Все нормально, тебе сообщили что ты подключился
← →
Pul (2005-10-06 13:12) [2]Indy через Exception мне сообщает, что я подключился?...))
а как быть со словом "CLOSED"?
← →
Digitman © (2005-10-06 13:25) [3]
> Pul (06.10.05 12:25)
ой врешь ведь !)
НЕ может такая ошибка возникнуть при подключении !
ты сам посуди - как может быть закрыто (CLOSED) соединение, если оно только еще устанавливается ? т.е. в дан.момент происходит попытка подключения, которая либо закончится успехом либо не успехом ?
о закрытии соединения следует вести речь лишь ПОСЛЕ того как соединение ранее было успешно установлено !
так что не выдумывай не былиц и смотри у себя там в коде, ЧТО же ты "ляпнул" серверу уже ПОСЛЕ того как соединение с ним было установлено, в рез-те чего сервер, попросту не поняв посланной тобой ему галиматьи, на полном своем праве закрыл соединение по своей инициативе.
← →
Pul (2005-10-06 13:50) [4]
> Digitman © (06.10.05 13:25) [3]
> НЕ может такая ошибка возникнуть при подключении !
Логично
Просто процедура отправки тестировалась на выделенке и там проблем не возникало.
> в рез-те чего сервер, попросту не поняв посланной тобой
> ему галиматьи
процедура работает нормально.
← →
Pul (2005-10-06 13:51) [5](продолжение)
проблемы возникли на диалапе.
← →
Digitman © (2005-10-06 14:29) [6]да где бы они ни возникали - к моменту собственно коннекта они не имеют никакого отношения
механизм коннекта в дан.случае в конечном итоге сводится к вызову WinsockAPI-ф-ции connect(), среди кодов ее ошибок НЕТ кода WSAECONNRESET, который собственно и интерпретируется Инди-компонентом как "CONNECTION CLOSED GRACEFULLY"
зато сей код фигурирует среди кодов отказа WinsockAPI-ф-ций send() и recv(), к вызову которых в конечном счете сводятся любые (явные или неявные) вызовы методов приема/передачи Инди-компонентов, использующих TCP... вызовы же send() и recv() бессмысленны без предыдущего успешного выполнения ф-ции connect()..
отсюда прямой вывод - коннект был выполнен успешно и был разорван по инициативе сервера, например, в рез-те получения им от тебя как клиента галиматьи, не соответствующей FTP-протоколу.
← →
Pul (2005-10-06 15:31) [7]
> Digitman © (06.10.05 14:29) [6]
Читай выше:
> процедура отправки тестировалась на выделенке и там
> проблем не возникало.
← →
Андрей Жук © (2005-10-06 15:39) [8]
procedure TIdIOHandler.RaiseConnClosedGracefully;
begin
(* ************************************************************* //
------ If you receive an exception here, please read. ----------
If this is a SERVER
-------------------
The client has disconnected the socket normally and this exception is used to notify the
server handling code. This exception is normal and will only happen from within the IDE, not
while your program is running as an EXE. If you do not want to see this, add this exception
or EIdSilentException to the IDE options as exceptions not to break on.
From the IDE just hit F9 again and Indy will catch and handle the exception.
Please see the FAQ and help file for possible further information.
The FAQ is at http://www.nevrona.com/Indy/FAQ.html
If this is a CLIENT
-------------------
The server side of this connection has disconnected normaly but your client has attempted
to read or write to the connection. You should trap this error using a try..except.
Please see the help file for possible further information.
// ************************************************************* *)
raise EIdConnClosedGracefully.Create(RSConnectionClosedGracefully);
end;
← →
Андрей Жук © (2005-10-06 15:40) [9]Обращаю внимание на
This exception is normal and will only happen from within the IDE, not
while your program is running as an EXE.
← →
Digitman © (2005-10-06 16:04) [10]
> на выделенке
да по колено, выделенка там у тебя, или отделенка, или хренделенка !)
это НЕ имеет к сабжу никакого отношения !
ошибка присутствует в ТВОЕМ в алгоритме, если твой алгоритм не учитывает особенностей работы при любых сетевых условиях.
не дождался какого-то ответа от сервера и ляпнул ему вместо ожидаемой им реакции на ответ совершенно иное ? заполучи от сервера дисконнект !) .. имеет полное право ! .. ибо не обязан он твои ошибки исправлять)
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.043 c