안녕하세요
socket 통신을 하고 있는데, recvfrom으로 인해 blocking되어 있는 와중에 blocking을 해제하고 싶습니다.
close를 해도 block이 풀리지는 않는군요. fcntl을 사용해서 O_NONBLOCKING을 해주었는데도, blocking 도중에는 해제가 안됩니다. 혹 방법이 있을까요?
전에 누군가가 이미 답변을 알려주셨었네요.. (좀더 찾아봤어야 했는데.. 헐.. 지송)
방법은
close 하기 전에
shutdown(sock,SHUT_RDWR/*winsock에서는 SD_BOTH*/);
하면 된답니다.
실제 해보니 정상동작하네요.
그런데 왜 shutdown을 해야 하지요? shutdown은 단지 선택적으로 OFF시키는 걸로만 알고 있었는데,... 그냥 트릭으로 봐야하나요?
---------------------------------http://blog.naver.com/munhoney ---------------------------------
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
해결 했네요.. ^^''
전에 누군가가 이미 답변을 알려주셨었네요.. (좀더 찾아봤어야 했는데.. 헐.. 지송)
방법은
close 하기 전에
shutdown(sock,SHUT_RDWR/*winsock에서는 SD_BOTH*/);
하면 된답니다.
실제 해보니 정상동작하네요.
그런데 왜 shutdown을 해야 하지요? shutdown은 단지 선택적으로 OFF시키는 걸로만 알고 있었는데,...
그냥 트릭으로 봐야하나요?
---------------------------------
http://blog.naver.com/munhoney
---------------------------------
댓글 달기