인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

random123님의 프로필 이미지

작성한 질문수

Windows 소켓 프로그래밍 입문에서 고성능 서버까지!

에코 클라이언트/서버 테스트 및 Wireshark로 확인

shutdown()을 호출하는 이유

해결된 질문

작성

·

77

0

 클라이언트에서 showdown()을 호출할때

연결 종료 4 way handshake가 발생하는것을

와이어샤크를 통해서 확인하였습니다.

 

shutdown()을 호출하지 않고 closesocket()으로도

연결 종료 4 way handshake가 발생되는데

 

왜 closesocket() 전에 showdown()을 호출하는 것인가요?

답변 1

0

널널한 개발자님의 프로필 이미지
널널한 개발자
지식공유자

shutdown()을 호출하는 순간 상대방 호스트에게 이제 더 이상 데이터 송/수신을 하지 않겠다는 신고호가 전달됩니다. 소위 우아한 종료를 위해서는 shutdown() 함수를 호출하는 것이 좋습니다. 물론 하지 않더라도 문제가 되지는 않습니다. 소켓이 닫히면 어차피 이후 수신되는 데이터들은 그냥 폐기되기 때문입니다.

그리고 우아한 종료가 필요한 경우는 네트워크 통신 상태가 양호한 경우보다 그렇지 못한 환경일 경우 입니다. 참고하시기 바랍니다. 😄