Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

поймать исключение... [D6, Win95/98, WinME, Win2k, WinXP]


Alexis ©   (2003-12-24 19:30:00) 

Необходимо, чтобы клиентская программа с ClientSocket перед стартом определяла, запущен ли в локалке сервер (с ServerSocket) и т.о. если сервер не запущен не выкидывала ошибки Asynchronous Socket Error 10061.
Но код

procedure TForm1.FormShow(Sender: TObject);
begin
try
ClientSocket1.Open;
except
on ESocketError do
begin
showmessage("Server is not running !");
exit;
end;
end;
end;

не дает результата-все равно выкидывается ошибка, а окно с сообщением "Server is not running !" не показывается !

Что я сделал не так? Как при старте проги сделать так, чтобы если сервер не запущен, выдавалось сообщение типа "Server is not running !" и не выдавалось окно с виндовым Error"ом?

Благодарю.


Rouse_   (2003-12-25 02:48:00) [1]

http://book.itep.ru/7/sock_71.htm
http://gem.dpt.ustu.ru/InterNetBook/Contents.htm

Читаем, вникаем, спрашиваем...

Желаю успехов


S@shka   (2003-12-24 21:51:00) [2]

Ну да а у тебя Exception не вылетает потому что тип сокета nonBlocking


Fredericco   (2003-12-24 19:39:00) [3]

Тьфу, блин
Event:
procedure ClientSocketError(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);)
begin
//Анализ ошибки
ErrorCode:=0;
end;


Fredericco   (2003-12-24 19:38:00) [4]

1) ClientType=ctNonBlocking
procedure TForm1.FormShow(Sender: TObject);
begin
ClientSocket1.Open;
end;


Event:
procedure ClientSocketError(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);)
begin
//Анализ ошибки
Abort;
end;


2) ClientType=ctBlocking
procedure TForm1.FormShow(Sender: TObject);
begin
try
ClientSocket1.Open;
except
on ESocketError do
begin
showmessage("Server is not running !");
exit;
end;
end;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо