小编see*_*per的帖子

C# gRPC 文件流式传输,原始文件比流式文件小

我在设置请求流类型 gRPC 架构时遇到一些问题。下面的代码仅用于测试目的,缺少各种验证检查,但主要问题是原始文件始终小于收到的文件。

这里的原因可能是编码吗?无论文件类型是什么,最终结果总是文件大小不同。

Protobuf接口

syntax = "proto3";
package FileTransfer;
option csharp_namespace = "FileTransferProto";

service FileTransferService {  
    rpc DownloadFile(FileRequest) returns (stream ChunkMsg);
}  

message ChunkMsg {
    string FileName = 1;
    int64 FileSize = 2;
    bytes Chunk = 3;
}

message FileRequest {
    string FilePath = 1;
}
Run Code Online (Sandbox Code Playgroud)

服务器端(发送):

    public override async Task DownloadFile(FileRequest request, IServerStreamWriter<ChunkMsg> responseStream, ServerCallContext context)
    {
        string filePath = request.FilePath;

        if (!File.Exists(filePath)) { return; }

        FileInfo fileInfo = new FileInfo(filePath);

        ChunkMsg chunk = new ChunkMsg();
        chunk.FileName …
Run Code Online (Sandbox Code Playgroud)

c# stream protobuf-net grpc

6
推荐指数
2
解决办法
6479
查看次数

标签 统计

c# ×1

grpc ×1

protobuf-net ×1

stream ×1