내 서버에서 DisconnectEx 와 함께 CreateIOCompletionport 를 쓰는 일반적인 코드에서

 

접속을 종료할 때 DisconnectEx로 걸어준 뒤 다음 재접속 할때 CreateIoCompletionPort 를 한번 더 걸어줄시 

 

에러 오류가 나오는 것을 확인 했다.

 

이미 걸려있는 소켓에 대해 한번 더 걸어줄시  나타나는 현상으로 보인다.

 

TF_REUSE_SOCKET 의 인자를 사용하면서 SOCKET을 재사용하게 되면 이러한 점을 참고해서 해야겠다고 생각한다.

 

ps. DisconnectEx를 해당 소켓에 걸어준다고 바로 해제되는 것이 아니라, 클라이언트 쪽에서 closesocket을 불러야만

 

이 함수가 작동한다.  setsockopt 에서 TF_REUSE_SOCKET 을 쓰는 것에 비해 장점은 서버쪽에서 클라이언트 소켓을

 

강제 종료함으로써 생기는 오류의 최소화가 아닐까 생각한다.

+ Recent posts