C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[13453] [답변]그냥 참고만 하세요!^^*
홍지곤 [hongjigon] 1308 읽음    2001-12-07 17:02
뽀록이 님이 쓰신 글 :
: 안녕하세요?
:
: C++Builder 6부터 인디가 기본 콤포넌트로 포함이 된다구 해서 연습겸 간단한 쪽지 프로그램을
: 만들어 보고 있습니다.
:
: 예전에는 TServerSocket을 이용해서 만들었었거든요.
:
: 문제는 각 클라이언트들중 하나가 비정상적인 종료(정전, 인터넷 라인 단절등의)를 하면
: 서버측에서 에러(10053)가 발생을 하더군요.
: 그러면서 붙어있던 나머지 클라이언트들도 같이 접속이 끊어진다는 겁니다.
:
: 다시 접속을 할려고 하면 클라이언트에서는 10054(이건 정확하게 기억을 못하겠습니다)의
: 에러코드를 발생시키면서 연결이 안되더군요.
:
: TServerSocket으로 할때는 OnClientError이라는 이벤트가 있어서 거기서 그런 문제를 처리 한것으로
: 기억을 하는데...
:
: Indy에서는 어떤이벤트에서 어떤식으로 처리를 해 줘야 할까요?
:
: 대략 이런식으로 하면되겠다고 힌트만 주셔도 감사하겠습니다.
:
: 그럼...
: 날씨도 추운데 감기조심하십시오

//-------------------------------------------------------------------------------------------
안녕하세요! Magic.홍지곤 입니다.

일단 서버는 UPS가 있고, 서버는 다운되지 않는다고 가정 합니다.

저도 서버쪽은 해결해야 됩니다.. 나중에 알게되면 저도 갈켜주세요!^^*

클라이언트 하나가 비정상적인 종료가 된다고 하더라도 제 생각에는

나머지 클라이언트 들은 정상적으로 돌아간다고 생각이 듭니다.

그리고 서버에서는 에러가 발생되지 않는게 정상이라고 생각합니다.

일단 클라이언트 한개가 비정상적인 종료가 됐다고 가정합니다.
(정전, 인터넷 라인 단절)

이렇게 됐을시 저는 이렇게 처리 했습니다. 서버쪽에서는

비정상적으로 종료된 아이디(IP), 쓰레드나 기타정보를 가지고 있는데요,

이거를 일정시간동안 아무런 응답이 없으면 서버에서 삭제시켜 버립니다.

그러면 다음에 다시 접속하더라도 들어 갑니다.



그리고 제생각에는 클로즈 할때 에러가 나는 것은 클라이언트에서 남아있는

쓰레들때문인 것 같은데요, 이건 쓰레들을 강제적으로 클라이언트에서 삭제한

후 클로즈 시키면 될 듯 싶습니다. 이부분은 해보진 않았습니다.

암튼 도움이 되었으면 좋겠습니다.

차근차근 한번 해보세요^^*

그럼! 즐거운 주말 되세요~~~

+ -

관련 글 리스트
13447 INDY TCPServer에서 에러처리문제요... 뽀록이 1452 2001/12/07
13453     [답변]그냥 참고만 하세요!^^* 홍지곤 1308 2001/12/07
13457         Re:[답변]그냥 참고만 하세요!^^* 뽀록이 1127 2001/12/07
13466             Re:Re:[답변]그냥 참고만 하세요!^^* 이경문 1478 2001/12/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.