2009-05-05 5 views
2

Null로 끝나는 문자열 (및 기타 이진 데이터) 일련 번호로 일련 번호가 매겨진 네트워크 연결에서 메시지를 읽습니다. NULL을 찾을 때까지 BinaryReader를 사용하여 한 번에 char을 읽을 수있었습니다..NET에서 Null 종료 문자열을 deserialize하는 가장 좋은 방법은 무엇입니까?

여전히 더 효율적인 방법이 있습니까? 길이가 64 자 미만인 문자열을 기대하고 있지만 길어질 수 있습니다.

답변

5

바이트 단위로 읽는 것이 합당한 옵션이라고 생각하지만 BufferedStream을 사용하여 기본 스트림의 IO를 최소화 할 수 있습니다.

2

전체를 문자열로 읽어 들인 다음 String.Split을 사용하여 null을 나눕니다.

문자열은 .NET에서 Null로 끝나지 않습니다.

+2

그는 전체 메시지가 얼마나 오랫동안 지속되었는지 (또는 메시지가 종료되는지 여부)를 말하지 않았습니다. 모든 것을 읽는 좋은 기회는 실현 가능하지 않습니다. –

+1

다른 한편으로는 질문에 정보가 충분하지 않아 실현이 불가능합니다. OP가 없다면 다른 사람을 도울 수있는 좋은 아이디어입니다. – ScottS

+0

사실이 줄 사이를 읽는다면 정보가 충분합니다. 그는 winpcap 또는 simliar API를 사용하여 네트워크 연결에서 입력 데이터를 얻고 있다고 언급했습니다. 따라서 Matthew가 말했듯이, 그는 계속적인 데이터 흐름에서 의견을 끌어낼 가능성이 큽니다. –

관련 문제