non-blocking connect() 함수 관련 질문입니다.

jms_jms의 이미지

안녕하세요?

궁금한 점은 아래와 같습니다.

socket을 non-blocking으로 변경을 한 후 ... connect() 를 수행하게 됩니다.

이 때 server 측에서 아무런 응답이 없는 경우, 특정 시간 후에.. (3 SEC timeout)

close()를 수행하게 되고... 다시 소켓 생성부터 connect()를 진행하게 됩니다.

이 때 netstat -ant 를 하게 되는경우에 소켓에 대해서 SYN_SENT가 대략 5개정도가 보이게 되는데..

이것도.. timeout이 내부적으로 있는건가요? 단순히 close를 하게 되었을 경우에 TCP_STATE를 closed 상태로 넘어가는 것으로 알고 있는데...

왜 그런건가요?

원론적인 이야기가 궁금합니다.

혹시 참고할 수 있는 사이트라도 있으면... 가르쳐 주시면 감사하겠습니다.

읽어주셔서 감사합니다.

shint의 이미지

c <--- non connect
s close()
c <--- new socket : non connect

안철수 백신에서 그렇게 보내는거 같은데요;;; ㅡ_ㅡ;;;

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com