标签:c# protobuf protocol buffers unity protobuf protobuf-net
package ProtoTest; message TestInfo{ required string test = 1; optional int32 num = 2; } message Msg{ required int32 id = 1; optional TestInfo msg = 2; optional string str = 3 [defalut="Test String"]; }
.proto Type |
Notes |
C++ Type |
Java Type |
Python Type[2] |
double |
double |
double |
float |
|
float |
float |
float |
float |
|
int32 |
Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. |
int32 |
int |
int |
int64 |
Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. |
int64 |
long |
int/long[3] |
uint32 |
Uses variable-length encoding. |
uint32 |
int[1] |
int/long[3] |
uint64 |
Uses variable-length encoding. |
uint64 |
long[1] |
int/long[3] |
sint32 |
Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. |
int32 |
int |
int |
sint64 |
Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. |
int64 |
long |
int/long[3] |
fixed32 |
Always four bytes. More efficient than uint32 if values are often greater than 228. |
uint32 |
int[1] |
int |
fixed64 |
Always eight bytes. More efficient than uint64 if values are often greater than 256. |
uint64 |
long[1] |
int/long[3] |
sfixed32 |
Always four bytes. |
int32 |
int |
int |
sfixed64 |
Always eight bytes. |
int64 |
long |
int/long[3] |
bool |
bool |
boolean |
boolean |
|
string |
A string must always contain UTF-8 encoded or 7-bit ASCII text. |
string |
String |
str/unicode[4] |
bytes |
May contain any arbitrary sequence of bytes. |
string |
ByteString |
str |
protoc -I=e:\proto --cpp_out=e:\proto e:\proto\myproto.proto就会在e:\proto 下生成myproto.h 和myproto.cpp文件,测试成功就说明protobuff已经安装成功。
//使用方法为:
protogen -i:input.proto -o:output.cs protogen -i:input.proto -o:output.xml -t:xml protogen -i:input.proto -o:output.cs -p:datacontract -q protogen -i:input.proto -o:output.cs -p:observable=true
protogen -i:e:\proto\myproto.proto -o:myproto.cs
版权声明:本文为博主原创文章,未经博主允许不得转载。
C#下使用protobuf(Google Protocol Buffers)
标签:c# protobuf protocol buffers unity protobuf protobuf-net
原文地址:http://blog.csdn.net/flywarrior/article/details/47359749