파일 전송 애플리케이션 (대용량 파일)이 있는데 확장 가능하도록 만들려고합니다. 비동기 콜백을 사용하여 16Kb 청크로 메시지를 읽습니다. 메시지를받을 때마다, 그것을 "암호 해독"하고 처리하는 클래스로 보냅니다. 사용 된 형식은 간단합니다. (int) Command -> (int) MsgLen -> (String) Msg.비동기 tcp 메시지 C#을 읽는 가장 좋은 방법은 무엇입니까?
이것은 하나의 예일뿐입니다. 내가 여러 번 읽으 려한다면 문제를 처리하는 가장 좋은 방법은 무엇입니까? 1 개의 읽기에 여러 명령이 있으면 어떻게됩니까? 예를 들어, 끝까지 가깝고 전체 4와 반대로 명령에 2 바이트 만 있습니다.
대기열을 생각했지만 바이트를 추출하여 변환하는 것이 어려웠습니다. 더 좋은 옵션이 있습니까?
매번 데이터를 추출하기 전에 적절한 양의 데이터가 있는지 확인해야합니까? –
오른쪽. 그래서 들어오는 데이터에 새로운 데이터를 기존의'byte []'배열에 추가 한 다음'MsgLen' 비트를 읽고'byte []. length'>'sizeof (MsgLen) + sizeof (Command) + MsgLen'입니다. 그렇다면 해당 데이터를 추출하고, 그렇지 않으면 더 많은 데이터를 기다립니다. –