-
Notifications
You must be signed in to change notification settings - Fork 0
03 09 수업 정리
ozt88 edited this page Mar 9, 2015
·
8 revisions
- 오류가 관리되는 언어 (java, c#등) 과는 달리 제대로된 오류 상태를 받을 수 없음.
ex) java 나 c#의 경우 메모리 문제(ex: out of index)가 있는 쓰기를 하는 순간 exception 발생,
c++은 메모리 문제가 있는 주소를 읽는 순간에 exception이 발생한다. - try catch는 발생하는 경우 상위 호출 스택으로 돌아가서 처리하기 때문에 실제 문제 발생한 부분의 정보를 얻기 힘들다.
- try catch의 쓰임새 : 오류 검출이 아니라, 오류 봉합을 위함.
- c++에서는 오류 당시 프로시저의 메모리. dmp파일을 찍어서
- AsyncSelect활용한 서버에서 send는 원하는 사이즈 만큼 못보내거나, 못읽은경우
FD_READ / WRITE 이벤트에서 다시 못 보낸 데이터 처리해야한다. - 위의 경우 session과 session별 버퍼를 활용한다.
- recv / send의 버퍼사이즈가 충분히 크지 않으면, 시스템 콜이 많아져서 총 처리량이 적어질 수 있다.
- FD_WRITE : 해당 소켓의 커널 send 버퍼에 빈 공간이 있는 경우.
- FD_READ : 해당 소켓의 커널 recv 버퍼에 읽어야할 데이터가 있는 경우.