2014-05-10 1 views
0

이벤트에 CAsyncSocket을 사용합니다. 예를 들어 OnReceive()를 덮어 씁니다.CAsyncSocket 및 알림을 사용하여 데이터 보내기/전송

그러나 "레벨"을 구현해야하는 것은 분명하지 않습니다. 예를 들어, 다른 쪽에서는 바이트 단위로 데이터를 보낼 수 있습니다. OnReceive는 모든 바이트 뒤에 호출됩니다.

그래서 내가 OnReceive에 있고 Receive ...를 사용하고 예상 한 모든 데이터가 수신되지 않는다면 어떻게해야합니까? 물건을 버리고 돌아오고 다음 OnReceive를 기다리시겠습니까?

그러나 이것은 매우 높은 수준으로 보입니다.이 문제를 처리하기 위해서는 상태 머신과 다른 버퍼가 필요합니다.

"적어도 4 바이트를 수신하면 알림"이라고 말하기가 쉽지 않습니까? 그렇다면 저급 수준의 자료를 처리 할 필요가 없으며 일단 알림이 도착하면 여기에서 정확히 4 바이트를 읽습니다.

답변

0

수신에 대한 호출이 제공하는 바이트 수를 제어 할 수있는 방법이 없습니다. 따라서 물건을 버리고 OnReceive에 대한 또 다른 호출을 기다려야합니다.

관련 문제