2014-04-04 3 views
0

서버가 있습니다 (Windows의 경우) 많은 소켓에서 수신 대기합니다. 일부 소켓이 xx 분 이상에서 데이터를 보내지 않는지 감지해야합니다. 그런 경우 특정 연결을 닫아야합니다.연결 감지

나는 살아있는 매개 변수를 연구했지만 아직도이 요구 사항을 구현하는 방법을 모르고있다. 소켓 핸들과 마지막으로 데이터의 타임 스탬프를 포함

감사 로사리오는

+0

Keepalive는 정확히 아무 관계가 없습니다. – EJP

답변

0

지정하시오 struct 그 소켓에 받았습니다. 클라이언트가 연결되면 목록/배열에 넣고 타임 스탬프를 설정하십시오. 클라이언트가 연결을 끊었을 때 (또는 닫을 때) 목록/배열에서 해당 소켓을 찾아서 제거하십시오. 새로운 데이터가 수신 될 때마다 목록/배열에서 해당 소켓을 찾아 타임 스탬프를 업데이트하십시오. 그런 다음 해당 목록/배열을 주기적으로 반복하여 만료 된 시간 소인을 정기적으로 검색 할 수 있습니다.