Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2002.09.09;
Скачать: [xml.tar.bz2];

Вниз

Обработка ошибки 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.006 c
14-27198
Fant
2002-08-14 18:02
2002.09.09
console-mouse


3-26913
Ученик
2002-08-20 12:25
2002.09.09
Быстрые связи Master-Detail


3-26892
Sergey L.
2002-08-20 09:48
2002.09.09
Помогите в создании отчета


1-27030
Егор
2002-08-27 15:32
2002.09.09
Как избежать пропадания значка?


1-27046
lexx80
2002-08-28 00:05
2002.09.09
Паморите с автозаполнением





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский