클라이언트 프로그램에서 WM_CLOSE메시지가 오면 소켓이 INVALID_SOCKET이 아닌 경우 closesocket 후 INVALID_SOCKET으로 초기화를 시켜주고 WSACleanup을 호출하고 종료하는데 서버 접속자 명단을 확인해보면 같은 아이피에서 여러 세션(이 단어가 맞는건가..)으로 접속중이더라구요

불필요하다고 생각해서 중복 실행 방지를 해뒀고 코드 가상화를 해둬서 우회를 했을 확률은 매우 낮은데 그럼 클라이언트가 종료돼도 소켓이 남아있다는 소리같은데

원인이 무엇이고 어떻게 해결해야되나요?

참고로 서버단에서는 FD_CLOSE가 오면 클라이언트 정보를 담아두는 구조체에서 해당 소켓의 내용을 지우고 closesocket을 해버립니다