안녕하세요...델피 여러분들..
다름 아니라 서버는 C로 개발했구여..클라이언트는 델파이로 개발했어요.
서버랑,클라이언트랑 TCP로 통신을 주고 받다가(물론 계속적인 connection
유지 상태) 클라이언트의 컴퓨터를 강제적으로 끄면 TCP 서버가 연결 끊긴
클라이언트를 알아 내야 하는데...그게 잘 안됩니다.
즉 클라이언트 컴퓨터를 강제적으로 끄면..서버에서 잡아내고 싶은데 그러지 못하고있다는 거져.. ㅠ.ㅠ
님들 경험을 구합니다.
어찌하오리까?
왕궁뎅이
***** 운영자님에 의해서 게시물 이동 + 카테고리유지되었습니다 (2004-10-20 02:20)
컴퓨터를 꺼 버리면 disconnect 정보가 상대방(peer)에게 전달되지 않기 때문에 클라이언트가 종료되었는지 알 방법이 없지요.
이런 경우, 일반적으로 KeepAlive방식을 사용합니다.
즉 "클라이언트는 하는 일이 없더라도 주기적으로 1분에 한번씩 KeepAlive 패킷을 서버에 보내야 한다"라고 클라이언트와 서버간에 약속을 하고
만약 서버의 입장에서 최신의 KeepAlive패킷 시각이 현재시각보다 1분이상 차이가 있는 경우 나름대로 '연결이 끊겼구나" 판단하는 것이지요.
KeepAlive방식은 2가지가 있는데 클라이언트가 KeepAlive패킷을 보내는 방식과 서버가 클라이언트로 패킷을 보내는 방식이 있습니다.
***** 운영자님에 의해서 게시물 이동 + 카테고리유지되었습니다 (2004-10-20 02:20)