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.

233 linhas
3.3 KiB

  1. %% 测试协议 注释可以用 %% 也可以用 //
  2. test {
  3. string aa;
  4. }
  5. // phoneNumber info
  6. phoneNumber{
  7. test number; //电话号码
  8. int32 type; //类型
  9. }
  10. %% person info
  11. //注释 $errcode[err1:辅导费, err2 : 444 ] tttttt33 辅导费
  12. %%1111 $errcode[err3:辅导费, err4:dfsf ] tttttt33 辅导费
  13. person{
  14. string name; %% 名字
  15. int32 id; //错误码 $errcode[err5:其他注释辅导费, err6:dfff] 其他注释辅导费
  16. string email; //fdfd $errcode[err7:def, err8:其他注释辅导费 ] tttttt33 辅导费
  17. list[phoneNumber] phone; // list of phoneNumber
  18. }
  19. %% addressBook info
  20. addressBook {
  21. list[person] person;
  22. list[person] other;
  23. }
  24. union{
  25. string test;
  26. int32 type;
  27. }
  28. tbool{
  29. bool bool;
  30. }
  31. tint8{
  32. int8 int1;
  33. int8 int2;
  34. }
  35. tuint8{
  36. uint8 int1;
  37. uint8 int2;
  38. }
  39. tint16{
  40. int16 int1;
  41. int16 int2;
  42. }
  43. tuint16{
  44. uint16 int1;
  45. uint16 int2;
  46. }
  47. tint32{
  48. int32 int1;
  49. int32 int2;
  50. }
  51. tuint32{
  52. uint32 int1;
  53. uint32 int2;
  54. }
  55. tint64{
  56. int64 int1;
  57. int64 int2;
  58. }
  59. tuint64{
  60. uint64 int1;
  61. uint64 int2;
  62. }
  63. tinteger{
  64. integer int1;
  65. integer int2;
  66. integer int3;
  67. integer int4;
  68. integer int5;
  69. integer int6;
  70. integer int7;
  71. integer int8;
  72. }
  73. tnumber{
  74. number int1;
  75. number int2;
  76. number int3;
  77. number int4;
  78. number int5;
  79. number int6;
  80. number int7;
  81. number int8;
  82. number float1;
  83. number float2;
  84. }
  85. tfloat{
  86. float int1;
  87. float int2;
  88. }
  89. tdouble{
  90. double int1;
  91. double int2;
  92. }
  93. tstring{
  94. string int1;
  95. string int2;
  96. }
  97. tlistbool{
  98. list[bool] int1;
  99. }
  100. tlistint8{
  101. list[int8] int1;
  102. }
  103. tlistuint8{
  104. list[uint8] int1;
  105. }
  106. tlistint16{
  107. list[int16] int1;
  108. }
  109. tlistuint16{
  110. list[uint16] int1;
  111. }
  112. tlistint32{
  113. list[int32] int1;
  114. }
  115. tlistuint32{
  116. list[uint32] int1;
  117. }
  118. tlistint64{
  119. list[int64] int1;
  120. }
  121. tlistuint64{
  122. list[uint64] int1;
  123. }
  124. tlistinteger{
  125. list[integer] int1;
  126. }
  127. tlistnumber{
  128. list[number] int1;
  129. }
  130. tlistfloat{
  131. list[float] int1;
  132. }
  133. tlistdouble{
  134. list[double] int1;
  135. }
  136. tliststring{
  137. list[string] int1;
  138. }
  139. tlistunion{
  140. list[union] int1;
  141. }
  142. %% 测试所有类型数据
  143. allType{
  144. bool bool;
  145. int8 int8;
  146. uint8 uint8;
  147. int16 int16;
  148. uint16 uint16;
  149. int32 int32;
  150. uint32 uint32;
  151. int64 int64;
  152. uint64 uint64;
  153. integer inte8;
  154. integer uinte8;
  155. integer inte16;
  156. integer uinte16;
  157. integer inte32;
  158. integer uinte32;
  159. integer inte64;
  160. integer uinte64;
  161. number num8;
  162. number unum8;
  163. number num16;
  164. number unum16;
  165. number num32;
  166. number unum32;
  167. number num64;
  168. number unum64;
  169. number numfloat;
  170. number numdouble;
  171. float float;
  172. double double;
  173. string string1; //英文
  174. string string2; //汉字
  175. union union;
  176. list[bool] lbool;
  177. list[int8] lint8;
  178. list[uint8] luint8;
  179. list[int16] lint16;
  180. list[uint16] luint16;
  181. list[int32] lint32;
  182. list[uint32] luint32;
  183. list[int64] lint64;
  184. list[uint64] luint64;
  185. list[integer] linte8;
  186. list[integer] linte16;
  187. list[integer] linte32;
  188. list[integer] linte64;
  189. list[number] lnum8;
  190. list[number] lnum16;
  191. list[number] lnum32;
  192. list[number] lnum64;
  193. list[number] lnfloat32;
  194. list[number] lnfloat64;
  195. list[float] lfloat;
  196. list[double] ldouble;
  197. list[string] lstring;
  198. list[union] lunion;
  199. }