-
WSASend function개발/C·C++ 2021. 6. 6. 22:38
마이크로소포트의 윈도우 개발자 문서에서 WSASend 함수 설명을 읽다 보면 재미있는 문장 하나를 발견하게 됩니다.
너무 당당해서 그런가 보다 넘어갈 수도 있는데, 이 부분에 대한 처리를 꼭 해줘야 합니다. WSASend 함수를 호출하기 위해 인수를 세팅해줄 때 전송할 데이터의 크기를 따로 저장합니다. 스레드가 완료 큐에서 가져온 메시지를 처리할 때 실제 전송된 바이트의 수와 데이터의 크기를 비교해서, 전송됐어야 할 데이터의 크기보다 전송된 실제 바이트가 작다면 WSASend() 함수를 다시 호출해야 합니다. WSASend 함수를 호출하기 전에 인수를 세팅할 때, WSABUF의 buf를 실제 전송한 사이즈 만큼 포인터를 앞으로 옮겨줘야 하며 WSABUF의 len은 사이즈만큼 빼야 합니다.
'개발 > C·C++' 카테고리의 다른 글
InterlockedExchange, InterlockedCompareExchange (0) 2021.06.10 timeBeginPeriod function (0) 2021.06.10 IOCP(2) (0) 2021.06.04 [Design Pattern] Observer (0) 2021.05.30 [Pointer] 정수형을 문자형으로 (0) 2021.05.28