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
[5441] Re:[질문]소켓 감시에 대해서..
조재영 [] 3113 읽음    2001-02-14 13:32
영수님의 방법이 맞습니다. 그 방법말고는 다른 방법이 없죠.

단 일정시간 이상 메세지가 안왔을때는 echo 패킷같은것을 클라이언트에 날리세요.
그리고 클라이언트에서는 단순히 echo에 대해 응답만 하고요.
예를 들어 5분이상 클라이언트로부터 수신이 없어면 접속을 끊을때

3분 경부터 1분단위 정도로 응답요청 데이터를 날리는 거죠.
그래도 응답이 없어면 5분되었을때 짜르는게 좋습니다.

똑같은 방법이긴 한데 나우누리, 하이텔 같은 곳에선 클라이언트가 접속유지멘트'를
능동적으로 보내줘야 하죠.

그 외에 7번 포트인 에코포트를 이용하는 방법도 있는데, 이 건 해당 컴퓨터가
인터넷에 연결되어 있는지를 검사하기는 좋지만 해당 컴퓨터에 서버와 연결되어있는
어플리케이션이 제대로 동작하고 있는지 판별하는데는 좀 무리가 있겠져.

몇가지 추가한다면 Winshoes 의 경우에 TCPServer(Listner이라고이름이 되어있음)에
보면 SessionTimeout 설정과 이벤트가 있습니다.
하지만 Indy엔 없더군요. 문의해보니깐 아직 포팅이 안되었다고 합니다.

그럼 이만~

이영수 님이 쓰신 글 :
: 서버와 크라이언트가 현재 잘 접속된 상태인지를 감시하는 방법에 대해..함 듣고 싶습니다.
: 저같은 경우는 크라이언트가 주기적으로 서버에 메시지를 날립니다.
: 그러면 서버가 일정시간을 체크해 메시지가 안오는 크라이언트는 끊어진걸루 체크해..
: 그 크라인언트에 대한 소켓과 관련 정보를 날려 버립니다.
: 왜냐하면..예기치 않은 통신두절(ex-랜선이 중간에 뽑혔을때)로 인해 서버에서의 오작동을
: 피하기 위해서 입니다. 지금껏 이런 방법을 채택해 소켓감시기능을 구현했는데
: 할 때만다..넘 무식한 방식인것 같고..하여간 맘에 안들거든요..
: 딴 분들은 많은 통신프로젝트를 구현할때 어떤 방식으로 하는지 궁금합니다.
: 많은 답변 부탁합니다.
:
: ProC++Builder홈에도 올렸슴다..그래도 돼죠?
:

+ -

관련 글 리스트
5416 [질문]소켓 감시에 대해서.. 이영수 2887 2001/02/13
5441     Re:[질문]소켓 감시에 대해서.. 조재영 3113 2001/02/14
5419     Re:[질문]소켓 감시에 대해서.. 제라툴 2707 2001/02/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.