iocp 수신에 대한 질문 좀 드릴께요
글쓴이: nTachyon / 작성시간: 금, 2014/04/11 - 12:09오후
로컬 컴퓨터에서 서버와 클라이언트를 같이 돌린 상태에서
클라이언트가 2048 정도 크기의 데이터를 iocp 서버로 보내면
처음에는 한번에 다(나눠서 오더라도 최소 2~3번 이내에. 왠만하면 한 번에) 읽어 오는데
그 다음부터는 25byte씩 나눠서 읽어 들이네요
물론 데이터는 다 수신 됩니다만.... 왜 이런지 이유가 궁금합니다.
나눠서 오는 크기가 너무 작아서 비효율적이네요.
iocp 서버는 소켓을 reuse 하지 않고
한 번의 통신이 끝나면
shutdown(psocket_data->socket, SD_RECEIVE);
shutdown(psocket_data->socket, SD_SEND);
closesocket(psocket_data->socket);
이렇게 소켓을 완전히 닫은 후, 새로 소켓을 만들어서 iocp에 등록시켜 주고 있습니다.
프로그램의 문제가 아니라 설정의 문제일까요?
Forums:
설정 문제는 아닌 듯 싶습니다.버퍼 사이즈나 버퍼
설정 문제는 아닌 듯 싶습니다.
버퍼 사이즈나 버퍼 재활용
아니면 알고리즘상 문제 일듯 싶습니다.
그리고 가급적 소켓은 재 사용 하는 것이 좋을 듯 싶습니다.
댓글 달기