|
TCP소켓통신상에서 정상 종료일 경우엔 서버든 클라이언트든 상대측에게 종료신호를 보내고 끊지만 비정상종료의 경우엔 그 신호를 보내지 못하고 끊어질 가능성이 대부분입니다. 비정상 종료가 일어날경우 Disconnect로 판단하려면 패킷을 보내서 확인하는 방법밖에 없습니다. 비정상 종료를 확인하기 위해 클라이언트에서 서버로 주기적으로 Keepalive 신호를 보내서 일정 횟수이상 신호를 못받을 경우 Disconnect됐다고 판단합니다.
아싸가오리라 님이 쓰신 글 :
: 안녕하세요
: 완전 초보자가 질문 하나 드립니다
: IOCP 컴포넌트를 써서 서버-클라이언트 소켓 통신을 짜고 있는데요
: 통신이 비정상종료(랜을 뽑거나 다운 등등) 됐을때
: 서버 자체에서 파악해서 해당 클라이언트와의 소켓을 DISCONNECT 명령을 줘서 강제로 통신을 끊을 려고 하는데요
:
: DISCONNECT 명령이 내려지고 난 다음에 소켓 DISCONNECT 이벤트가 일어나지 않아서요...(그래서 서버 다운 ㅠㅠ)
: 혹시 그전에 어떤 처리를 해줘여 하는건지.. 아님 다른 명령을 내려야 하는건지
: 답답한 마음에 질문올립니다.~~~ㅜㅜ
|