erlang自定义二进制协议
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 

244 linhas
3.5 KiB

%% 测试协议 注释可以用 %% 也可以用 //
test {
string aa;
}
// phoneNumber info
phoneNumber{
test number; //电话号码
int32 type; //类型
}
%% person info
//注释 $errcode[err1:辅导费, err2 : 444 ] tttttt33 辅导费
%%1111 $errcode[err3:辅导费, err4:dfsf ] tttttt33 辅导费
person{
string name; %% 名字
int32 id; //错误码 $errcode[err5:其他注释辅导费 err6:dfff] 其他注释辅导费
string email; //fdfd $errcode[err7:def, err8:其他注释辅导费] tttttt33 辅导费
list[phoneNumber] phone; // list of phoneNumber
}
%% addressBook info
addressBook {
list[person] person;
list[person] other;
}
union{
string test;
int32 type;
}
tbool{
bool bool;
}
tint8{
int8 int1;
int8 int2;
}
tuint8{
uint8 int1;
uint8 int2;
}
tint16{
int16 int1;
int16 int2;
}
tuint16{
uint16 int1;
uint16 int2;
}
tint32{
int32 int1;
int32 int2;
int32 int3;
int32 int4;
int32 int5;
int32 int6;
int32 int7;
int32 int8;
int32 int9;
int32 int10;
}
tuint32{
uint32 int1;
uint32 int2;
}
tint64{
int64 int1;
int64 int2;
}
tuint64{
uint64 int1;
uint64 int2;
}
tinteger{
integer int1;
integer int2;
integer int3;
integer int4;
integer int5;
integer int6;
integer int7;
integer int8;
}
tnumber{
number int1;
number int2;
number int3;
number int4;
number int5;
number int6;
number int7;
number int8;
number float1;
number float2;
}
tfloat{
float int1;
float int2;
}
tdouble{
double int1;
double int2;
}
tstring{
string int1;
string int2;
}
tlistbool{
list[bool] int1;
}
tlistint8{
list[int8] int1;
}
tlistuint8{
list[uint8] int1;
}
tlistint16{
list[int16] int1;
}
tlistuint16{
list[uint16] int1;
}
tlistint32{
list[int32] int1;
}
tlistuint32{
list[uint32] int1;
}
tlistint64{
list[int64] int1;
}
tlistuint64{
list[uint64] int1;
}
tlistinteger{
list[integer] int1;
}
tlistnumber{
list[number] int1;
}
tlistfloat{
list[float] int1;
}
tlistdouble{
list[double] int1;
}
tliststring{
list[string] int1;
}
tlistunion{
list[union] int1;
}
%% 测试所有类型数据
allType{
bool bool;
int8 int8;
uint8 uint8;
int16 int16;
uint16 uint16;
int32 int32;
uint32 uint32;
int64 int64;
uint64 uint64;
integer inte8;
integer uinte8;
integer inte16;
integer uinte16;
integer inte32;
integer uinte32;
integer inte64;
integer uinte64;
number num8;
number unum8;
number num16;
number unum16;
number num32;
number unum32;
number num64;
number unum64;
number numfloat;
number numdouble;
float float;
double double;
string string1; //英文
string string2; //汉字
union union;
list[bool] lbool;
list[int8] lint8;
list[uint8] luint8;
list[int16] lint16;
list[uint16] luint16;
list[int32] lint32;
list[uint32] luint32;
list[int64] lint64;
list[uint64] luint64;
list[integer] linte8;
list[integer] linte16;
list[integer] linte32;
list[integer] linte64;
list[number] lnum8;
list[number] lnum16;
list[number] lnum32;
list[number] lnum64;
list[number] lnfloat32;
list[number] lnfloat64;
list[float] lfloat;
list[double] ldouble;
list[string] lstring;
list[union] lunion;
}
testnull {
}