Program/C & C++

소켓의 사용 유무

너구리V 2011. 7. 29. 09:46

현재 소켓이 사용중인지 아닌지 어떻게 알 수 없을까?

==> 다음과 같이 간단히 해결할 수 있습니다. 소켓 객체는 멤버변수로 m_hSocket을 가지고 있는 데, 이 멤버는 현재 객체에 붙어있는 소켓의 핸들입니다. 이 소켓이 생성되고 소멸되지 않아서 현재 생존기간 중이라면 이 값은 결코 INVALID_SOCKET 이 아닙니다.

 

if(m_hSocket != INVALID_SOCKET)

{

  // 소켓이 생존 중일때 처리.

}

else

{

  // 소켓이 닫혔을 때 처리

}

 

주의할 것은, 소켓이 생존중이라고 해서 반드시 연결상태는 아니라는 것입니다. Close()를 호출하면 소켓핸들은 파괴되고, m_hSocket의 값은 INVALID_SOCKET 이 됩니다.

반응형