epoll을 사용해서 데이터를 읽어 들여야 하는데. 어떻게 처리해야 할지 몰라서 문의드립니다.
단순히 EAGAIN 까지 돌면서 읽는 것이 아니라.
특정 데이터 사이즈(24) 만큼 읽고, 거기서 body len을 읽고, 다시 body len을 읽어 들이는 것입니다.
ET를 사용할 경우 [A부분] 에서 EAGAIN가 발생할 떄까지 돌면서 읽어야 한다고 하는데.
정확히 어떻게 해야하는지 잘 모르겠습니다.
예들 들어 상대편이 100byte의 데이터를 보냈는데,
그걸 읽었을 때, 40byte의 온전한 데이터(header와 body로 구성된)가 2개 연속, 나머지 20byte의 온전한 데이터(header와 body로 구성된)가 존재하고 수신된다고 가정했을 때,
EAGAIN이 60byte 수신 후 발생, 나머지 40byte에서 또 발생한 경우에 대한 처리 같은 것이 궁금합니다.
/* epoll 파일 fd 저장소 생성 */
epfd = epoll_create(MAXEPOLLSIZE);
if(epfd == -1) {