>IndyTCPClient와 IndyTCPServer로 통신을 하고 있습니다.
>통신을 하던 중 Server 프로그램을 종료하면 Client 프로그램에서 Client Disconnect 가 발생합니다.
>그래서 연결이 끊어졌을때 재접속을 시도한다던지 화면에 표시한다던지 작업을 할 수 있습니다.
>랜선을 뽑더라도 위와 같은 작업이 정상적으로 이루어져야 하는데,
>통신 중에 서버 프로그램 종료가 아닌 랜선을 뽑아버리면..Client 프로그램이 멈춰버립니다.....
>이 방법을 해결 할 수 있는 방법을 아시는 분 계시면 도와주세요~
소켓 onerror 이벤트에 오류 핸드링을 하셔요.
case ErrorEvent of
eeGeneral :
LogMemo.Lines.Add(DateTimeToStr(Now) + ' TSR ERROR : TCP CLIENT (eGeneral)');
eeSend :
LogMemo.Lines.Add(DateTimeToStr(Now) + ' TSR ERROR : TCP CLIENT (eSend)');
eeReceive :
LogMemo.Lines.Add(DateTimeToStr(Now) + ' TSR ERROR : TCP CLIENT (eReceive)');
eeDisconnect :
LogMemo.Lines.Add(DateTimeToStr(Now) + ' TSR ERROR : TCP CLIENT (eDisconnect)');
eeConnect :
LogMemo.Lines.Add(DateTimeToStr(Now) + ' TSR ERROR : TCP CLIENT (eConnect)');
eeAccept :
LogMemo.Lines.Add(DateTimeToStr(Now) + ' TSR ERROR : TCP CLIENT (eAccept)') ;
eeLookup :
LogMemo.Lines.Add(DateTimeToStr(Now) + ' TSR ERROR : TCP CLIENT (eLookup)');
end;
errorCode := 0;
꼭 errorcode 를 0으로 해주셔야 exception이 발생하지 않습니다.
수고하세요 홧팅~! ^^