tcpclient에 버그가 있는것 같아 글을 올립니다.
tcpclient를 이용하여 unix의 특정 process를 감시하는 프로그램을 만들었읍니다.
즉 일정시간(1분) 마다 command를 unix에 보내 그에 대한 결과값을 받아와 분석하여 정상인지를 체크하는 것이죠.
근데 tcpclient가 connect 된후 결과값을 받고 disconnect가 되었는데 핸들이 계속 남습니다.
약 3시간 이상을 실행하니까 핸들이 15000개 이상까지 되었구요 TEST용 PC의 CPU 사용율이 100%가 되면서 버벅됩니다.
(제가 실행한 프로그램은 5개의 DLL에서 각각 1개의 tcpclient가 실행됨)
tcpclient가 tread에서 실행되기에 첨엔 thread 에서 다른 unit의 form에 있는 component를 access 하는 것이 잘못됐나 의심했었구요.
그런데 demos에 있는 예제를 실행해 보았더니 이도 같은 현상이 발생하더군요.
제가 demos/internet/rexec 를 가지고 test한 결과 command를 한번씩 실행할때마다(실제로는 tcpclient가 connect될때) 핸들이 3개 늘어나는 것 같더군요.
저와 같은 경험을 해보신 분이나 해결방안을 아시는 분은 꼭 좀 답변 부탁드립니다.
이젠 거의 다 완성했다고 생각했는데 이런 문제가 발생하니 만들어 논 프로그램을 다시 해야될것 같아 눈앞이 깜깜합니다.
꼭! 꼭! 답변 부탁드립니다.