2012-11-15 1 views
0

다른 컴퓨터의 서비스에 파일 + 메타 데이터를 보낼 수 있어야하며이 서비스는 데이터에 대한 작업을 수행하고 여러 파일 + 메타 데이터를 반환해야합니다.복수 스트림 직렬화 .NET

문제는 파일이 매우 크기 때문에 클라이언트 또는 서버에서 파일 및 관련 메타 데이터를 보유하기 위해 메모리를 할당하는 것이 적합하지 않다는 것입니다.

파일 스트림 및 기타 데이터를 포함 할 수있는 라이브러리가 있다면 네트워크를 통해 스트리밍 할 수 있도록 단일 스트림으로 결합하십시오.

지금까지 가장 좋은 해결책은 파일 길이를 포함한 직렬화 된 메타 데이터를 먼저 보낸 다음 다른 파일 스트림을 해당 스트림에 추가 한 다음 다른 쪽 스트림을 분해하는 것입니다. 이 문제를 해결할 더 우아한 방법이 있기를 바랍니다.

나는 내가 직렬화하고자하는 스트림의 내용의 직렬화를 지원하는 BinaryFormatter와 같은 것을 찾고 있다고 생각한다.

답변

0

내 네트워킹 라이브러리는 문제없이 매우 큰 스트림을 보낼 수 있습니다. 그리고 그것은 너무 빨리 할 수 ​​있습니다 (현재 HTTP 서버 구현은 컴퓨터에서 초당 2700 개의 요청을 처리합니다).

그냥 라이브러리에 스트림을 보내라고 말하면 청크를 사용하여 스트림을 전송합니다.

그냥 그 몸에 대한 않기 때문에 HTTP 서버 샘플을 확인합니다 https://github.com/jgauffin/griffin.networking/blob/master/Source/Protocols/Http/Griffin.Networking.Protocol.Http/HttpService.cs

Context.Send(message.Body); 라인 스트림 (FileStream 또는 무엇이든)

를 보내드립니다