Вниз
Скачать: 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.01 c
6-27150
sergrrey
2002-06-28 10:33
2002.09.09
ClientSocket посылает строку только со второго раза!


1-26938
Igel
2002-08-27 11:14
2002.09.09
Подскажите где найти инфу по интерфейсам?


4-27287
Alexander
2002-07-06 02:38
2002.09.09
Как можно средствами API создать что-то подобное SpeedButton


4-27261
TYuri
2002-07-17 14:38
2002.09.09
Как создать задание для Sheduler a


3-26884
BJValentine
2002-08-19 16:05
2002.09.09
Параметр в запросе




   Наверх