10ms당 2000 바이트 정도의 패킷을 받는 소켓 프로그램을 작성했는데
패킷을 5~6천개 정도 받다가 read에서 블록 됩니다.
truss로 찍어보면 doors_return 요게 마지막으로 찍히고 sleeping 상태로 있
게 되고 read를 하지 못합니다.
버퍼는 충분히 잡아 줬구요... 원인을 아시는분 답변 부탁드립니다.. ^^
block mode 이면 data 가 tcp 수신 버퍼에 없다면 블럭 됩니다.
이 블럭 되는것을 피하기 위해서는 socket을 non-block으로 구현해야 합니다.
^____^; 방가여
텍스트 포맷에 대한 자세한 정보
<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]
non-block mode 인지 확인하십시오..
block mode 이면 data 가 tcp 수신 버퍼에 없다면 블럭 됩니다.
이 블럭 되는것을 피하기 위해서는 socket을 non-block으로 구현해야 합니다.
^____^; 방가여
댓글 달기