비동기 소켓을 사용하여 가변 길이 메시지를 전송하는 방법에 대해 an article on Vadym Stetsiak's blog을 읽었습니다.비동기 요청한 모든 바이트를 읽지 않고 수신 할 수 있습니까?
그는 말한다 : 서버에 도착하면 여러 메시지
무엇을 기대? 여러 메시지를 처리하는 동안 수신 작업은 그물에서 읽히는 임의의 바이트 수를 반환 할 수 있음을 기억해야합니다. 일반적으로이 크기는 Receive 또는 BeginReceive 메서드에서 0부터 지정된 버퍼 길이까지입니다.
그래서 BeginReceive에 100 바이트를 읽도록 지시하더라도 그보다 작은 값을 읽을 수 있으며 ??? 네트워크 지원 소프트웨어 (TCP/IP)를 개발 중이며 요청한 정확한 바이트 수를 항상받습니다.
나는 로직을 이해하지 못한다. 내가 요청한 모든 바이트를받지 못한다면 왜 Receive는 비동기 적으로 완료 될까? 그냥 계속 기다린다.
아마도 IP 대 TCP와 관련이 있습니까?