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

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

Отреагировать на ошибку 10061 TClientSocket-a


Ezorcist ©   (2007-04-11 16:47:00) 

Как отреагировать на эту ошибку? а точнее в какой точке программы она вообще происходит?

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ScktComp;

type
 TForm1 = class(TForm)
   ClientSocket1: TClientSocket;
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
   procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;
     ErrorEvent: TErrorEvent; var ErrorCode: Integer);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
try
  ClientSocket1.Open;
except
   showmessage('error in #1');
end;
end;

procedure TForm1.ClientSocket1Error(Sender: TObject;
 Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
 var ErrorCode: Integer);
begin
   showmessage('error in #2');
   errorcode:=0;
end;

end.


В этих двух событиях ее вроде нет, где же ее искать ? :)


Ezorcist   (2007-04-16 15:39:00) [1]

Мда... странное дело. У меня в системе установлен аутпост, который был в режиме запрещения. Как только добавил программы в список разрешенных аутпостом, ошибка начала нормально отлавливаться...


Сергей М.   (2007-04-16 09:38:00) [2]


> неужели такая нереальная задача?


Абсолютно реальная.

В обработчике OnError:

case ErrorCode of
 10061: .. реакция ..
  ... другая реакция ..
else
 ... реакция по умолчанию ..
end;
ErrorCode := 0;
Socket.Close;


Ezorcist   (2007-04-15 21:42:00) [3]

неужели такая нереальная задача?)


Ezorcist   (2007-04-14 19:17:00) [4]


> попробуй убрать try...except ;)

неизменно...  ((((


grisme   (2007-04-14 13:16:00) [5]

попробуй убрать try...except ;)


Ezorcist   (2007-04-14 00:00:00) [6]

ТовариСЧИ, будте же снисходительны к новичкам :)


Ezorcist   (2007-04-13 18:57:00) [7]


> при попытке коннекта...
> в clientsocket1.OnError передается ErrorCode


тогда почему в коде [0] не появляется сообщение "error in #2" ?


grisme   (2007-04-13 18:27:00) [8]

если я правильно понял то, что тебе нужно... а я понял, что тебе нужно узнать, что произошла ошибка 10061 при попытке коннекта...
в clientsocket1.OnError передается ErrorCode
можно сделать конструкцию типа

case ErrorCode of
   10061:showmessage('refused!');
   ... остальные сокетные ашыпки
end;
ErrorCode:=0; // а потом уже нилить, но нада буит деинит клиента сделать вручную и т.д., т.е. cliensocket уже забудет про ошибку


Ezorcist   (2007-04-13 17:27:00) [9]

Ну обычно компилятор сам показывал на какой именно строчке возникает ошибка, а тут Button1Click нормально завершается, а потом просто окно об ошибке и выделяется строка "end." в коде проекта.


Сергей М.   (2007-04-11 17:10:00) [10]


> Ezorcist   (11.04.07 16:47)


У тебя отладчик перед носом есть ? Есть.
Ну и какого же хрена ?)


Наверх

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