![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
поймать исключение... [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;