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

Вниз

Обработка ошибки TClientSocket   Найти похожие ветки 

 
Alibaba ©   (2002-07-03 12:29) [0]

Всем привет!
Такая проблема - необходимо корректно обработать ситуацию, когда сервер отсутствует.
Нарисовал простого клиента:

procedure TfrmMain.StartClient;
begin
clnSocket.Port := 1025;
clnSocket.Address:="10.44.90.14";
try
clnSocket.Open;
except
ShowMessage("Отсутствует сервер. Код-1.");
end;
end;

procedure TfrmMain.clnSocketError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
ShowMessage("Отсутствует сервер. Код-2.");
end;

Коды поставил что-бы знать в каком месте сработало.

Так вот, если сервера нет - срабатывает "Kод-2"
и еще вываливается сообщение "Asynchronous socket error 10061"
Подскажите плиз, в чем дело?


 
Digitman ©   (2002-07-03 12:46) [1]

Работает это как и положено, так идолжно быть в станд.реализации TCustomWinSocket.
Никаких непонятных "дел" здесь нет. Метод Open() никогда не возбуждает исключений, связанных с недоступностью сервера - на то есть событие OnSocketError(), в обработчике которого и можно как раз реализовать требуемую тебе логику сетевых событий клиента


 
Fredericco ©   (2002-07-03 12:52) [2]

В обработчике OnSocketError напиши Abort чтобы не появлялось "Asynchronous socket error 10061".


 
anatol ©   (2002-07-03 12:56) [3]

TCustomSocket.OnError
Occurs when the socket fails in making, using, or shutting down a connection.

property OnError: TSocketErrorEvent;

Description

Write an OnError event handler to respond to errors that arise with the socket connection. Set the ErrorCode parameter to 0 if the OnError event handler successfully deals with the error condition, to prevent an ESocketError from being raised.

Esli ne poneatno nujno ustanovit" ErrorCode := 0; 4tobi vi ne polu4ili vashe "Asynchronous socket error 10061".



 
Alibaba ©   (2002-07-03 13:00) [4]

Всем спасибо!
> Digitman : За теорию - век живи век учись!
> Fredericco : За практику - Поставил свой код в OnSocketError, затем - Abort и все супер! Никаких дополнительных сообщений не возникает.



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

Текущий архив: 2002.09.09;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
1-27114
qqqqqqq
2002-08-29 05:51
2002.09.09
Что такое дамп? (памяти, паролей)


1-27077
Lexer
2002-08-28 13:42
2002.09.09
Запуск макроса


1-27061
delpher_gray
2002-08-28 09:24
2002.09.09
Цикл for ... to ... do снизу вверх :-)


3-26864
Slava_BAZ
2002-08-19 13:52
2002.09.09
Блокировка таблиц и записей


14-27157
Vasso
2002-08-06 11:20
2002.09.09
Отношение к WinXp