이수정 wrote:
>
> procedure TdateForm.FormShow(Sender: TObject);
> var
> Flag : integer;
> begin
> Flag := 1;
> try
> ClientSocket1.Active := True;
> Flag := 0;
> Except
> //--- 방법 1
> on E : ESocketError do ErrorDialog(E.Message, E.HelpContext);
>
> //---- 방법 2
> // Raise;
> // Flag := 1;
> end;
>
> if Flag = 1 then
> Showmessage('서버가 다운......');
>
> end;
>
>
> <방법1> 에서는 ErrorDialog 라는 함수를 못찾아서 (그냥 도움말에서 본거 그대로 한건데.. )
> 컴파일 자체가 안되고 있구요...
>
> <방법2> 로 해서는 메시지가 안뜨고... 프로그램이 다운되 버립니다..
>
>
> 어디서 잘못된 것인지..
> 어떻게 하면 되는지.. 조언 부탁드립니다.
>
- 코딩을 보니 서버가 동작하지 않는데 클라이언트 소켓을 연결할때
처리를 하시려는것 같군요.
클라이언트 소켓 이벤트중 OnError 이벤트가 있지요 거기서 처리를 해주셔야 될것
같습니다.
아래 코딩을 참조하세요
procedure TDmod.ClientSocketError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
case ErrorCode of
10061 :
begin
ShowMessage('서버에 접속할수 없습니다');
SysUtils.Abort; // 에러메시지 묵시적으로 무시
end;
:
:
end;
end;