|
서버 프로그램을 실행시키고 클라이언트 프로그램을 실행시키면
두 프로그램은 정상적으로 잘 동작됩니다.
그런데... 클라이언트 프로그램이 강제종료되면 서버프로그램의 메모리가
계속 증가하고 CPU점유율도 99퍼센트까지 올라갑니다.
디버깅을 해 보면 클라이언트가 강제종료되도 해당 쓰레드가 남아있습니다.
그리고 IdTCPServerDisconnect(..)이벤트도 발생하지 않습니다.
정상적으로는 클라이언트가 서버에게 종료 하겠다는 메시지를 발생시키고,
서버에서 Disconnect를 해야 하는 것으로 아는데...
이 프로그램에서는 따로 종료버튼이 존재하지 않고. 종료하기 위해선 강제종료밖에
할 수 없습니다. (24시간 365일 돌아야 하는 프로그램이라서요...)
시스템의 메모리양만큼 증가하다 나중에는 가상메모리가 없다고 메시지가 발생하네요...
클라이언트 프로그램이 강제종료되었을 때 서버에서는 어떻게 대응을 해야 할까요??
|