小编Tar*_*Koc的帖子

Netty protobuf和google csharp原型用法

我想与Java服务器应用程序通信C#客户端应用程序.Java使用带有protobuf管道enconder的Ne​​tty框架.

我的Proto文件:import"google/protobuf/csharp_options.proto";

option (google.protobuf.csharp_file_options).namespace = "ChatClient.LoginProtocol";
option (google.protobuf.csharp_file_options).umbrella_classname = "LoginProtocol";

option optimize_for = SPEED;

message Credential {
   required string email = 1;
   required string password = 2;

}
Run Code Online (Sandbox Code Playgroud)

Netty管道编解码器:

p.addLast("frameDecoder", new ProtobufVarint32FrameDecoder());
p.addLast("protobufDecoder", new   ProtobufDecoder(LoginProtos.Credential.getDefaultInstance()));

    p.addLast("frameEncoder", new ProtobufVarint32LengthFieldPrepender());
    p.addLast("protobufEncoder", new ProtobufEncoder());
Run Code Online (Sandbox Code Playgroud)

那么我该如何向java Server发送消息呢.c#代码:

stream = client.GetStream();
sReader = new StreamReader(stream);
sWriter = new StreamWriter(stream);

Credential.Builder builder = Credential.CreateBuilder();

 builder.SetEmail("xxx@gmail.com").SetPassword("12356");

 sWriter.Write(builder.Build().ToByteArray());

 sWriter.Flush();
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助,对不起我的英语.

c# java protocol-buffers netty

4
推荐指数
1
解决办法
3024
查看次数

标签 统计

c# ×1

java ×1

netty ×1

protocol-buffers ×1