소켓 read시 블록 되는 현상

cnovice의 이미지

10ms당 2000 바이트 정도의 패킷을 받는 소켓 프로그램을 작성했는데

패킷을 5~6천개 정도 받다가 read에서 블록 됩니다.

truss로 찍어보면 doors_return 요게 마지막으로 찍히고 sleeping 상태로 있

게 되고 read를 하지 못합니다.

버퍼는 충분히 잡아 줬구요... 원인을 아시는분 답변 부탁드립니다.. ^^

metalwolf의 이미지

block mode 이면 data 가 tcp 수신 버퍼에 없다면 블럭 됩니다.

이 블럭 되는것을 피하기 위해서는 socket을 non-block으로 구현해야 합니다.

^____^; 방가여