Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.06;
Скачать: CL | DM;

Вниз

Отреагировать на ошибку 10061 TClientSocket-a   Найти похожие ветки 

 
Ezorcist   (2007-04-11 16:47) [0]

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

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.


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


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


> Ezorcist   (11.04.07 16:47)


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


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

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


 
grisme ©   (2007-04-13 18:27) [3]

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

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


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


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


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


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

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


 
grisme ©   (2007-04-14 13:16) [6]

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


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


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

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


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

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


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


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


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

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

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


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

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



Страницы: 1 вся ветка

Текущий архив: 2007.05.06;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.026 c
2-1176896692
deras
2007-04-18 15:44
2007.05.06
Как найти файлы?


2-1176804210
dr_craigan
2007-04-17 14:03
2007.05.06
под окном


1-1173789487
oleg__
2007-03-13 15:38
2007.05.06
TChart


6-1162829430
NetUser
2006-11-06 19:10
2007.05.06
Пакет IP


2-1176788211
Ega23
2007-04-17 09:36
2007.05.06
PlaySound - просветите