로컬 컴퓨터에서 서버와 클라이언트를 같이 돌린 상태에서
클라이언트가 2048 정도 크기의 데이터를 iocp 서버로 보내면
처음에는 한번에 다(나눠서 오더라도 최소 2~3번 이내에. 왠만하면 한 번에) 읽어 오는데
그 다음부터는 25byte씩 나눠서 읽어 들이네요
물론 데이터는 다 수신 됩니다만.... 왜 이런지 이유가 궁금합니다.
나눠서 오는 크기가 너무 작아서 비효율적이네요.
iocp 서버는 소켓을 reuse 하지 않고
한 번의 통신이 끝나면
shutdown(psocket_data->socket, SD_RECEIVE);
shutdown(psocket_data->socket, SD_SEND);
closesocket(psocket_data->socket);
이렇게 소켓을 완전히 닫은 후, 새로 소켓을 만들어서 iocp에 등록시켜 주고 있습니다.
프로그램의 문제가 아니라 설정의 문제일까요?