Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.009 c
1-26986
Krann
2002-08-29 16:33
2002.09.09
Данные по Tcp


1-27080
FeatheryMan
2002-08-28 15:18
2002.09.09
Как открыть очень большой файл в RichEdit в Win2000?


14-27189
AL2002
2002-08-12 21:42
2002.09.09
В продолжение mp3 чарта


3-26914
Dimedrol
2002-08-19 15:17
2002.09.09
IB/FB - юзеры, права и базы.


1-27035
Fly`
2002-08-27 15:50
2002.09.09
ListView.




   Наверх