erlang自定义二进制协议
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

244 Zeilen
3.5 KiB

vor 5 Jahren
  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. int32 int3;
  51. int32 int4;
  52. int32 int5;
  53. int32 int6;
  54. int32 int7;
  55. int32 int8;
  56. int32 int9;
  57. int32 int10;
  58. }
  59. tuint32{
  60. uint32 int1;
  61. uint32 int2;
  62. }
  63. tint64{
  64. int64 int1;
  65. int64 int2;
  66. }
  67. tuint64{
  68. uint64 int1;
  69. uint64 int2;
  70. }
  71. tinteger{
  72. integer int1;
  73. integer int2;
  74. integer int3;
  75. integer int4;
  76. integer int5;
  77. integer int6;
  78. integer int7;
  79. integer int8;
  80. }
  81. tnumber{
  82. number int1;
  83. number int2;
  84. number int3;
  85. number int4;
  86. number int5;
  87. number int6;
  88. number int7;
  89. number int8;
  90. number float1;
  91. number float2;
  92. }
  93. tfloat{
  94. float int1;
  95. float int2;
  96. }
  97. tdouble{
  98. double int1;
  99. double int2;
  100. }
  101. tstring{
  102. string int1;
  103. string int2;
  104. }
  105. tlistbool{
  106. list[bool] int1;
  107. }
  108. tlistint8{
  109. list[int8] int1;
  110. }
  111. tlistuint8{
  112. list[uint8] int1;
  113. }
  114. tlistint16{
  115. list[int16] int1;
  116. }
  117. tlistuint16{
  118. list[uint16] int1;
  119. }
  120. tlistint32{
  121. list[int32] int1;
  122. }
  123. tlistuint32{
  124. list[uint32] int1;
  125. }
  126. tlistint64{
  127. list[int64] int1;
  128. }
  129. tlistuint64{
  130. list[uint64] int1;
  131. }
  132. tlistinteger{
  133. list[integer] int1;
  134. }
  135. tlistnumber{
  136. list[number] int1;
  137. }
  138. tlistfloat{
  139. list[float] int1;
  140. }
  141. tlistdouble{
  142. list[double] int1;
  143. }
  144. tliststring{
  145. list[string] int1;
  146. }
  147. tlistunion{
  148. list[union] int1;
  149. }
  150. %% 测试所有类型数据
  151. allType{
  152. bool bool;
  153. int8 int8;
  154. uint8 uint8;
  155. int16 int16;
  156. uint16 uint16;
  157. int32 int32;
  158. uint32 uint32;
  159. int64 int64;
  160. uint64 uint64;
  161. integer inte8;
  162. integer uinte8;
  163. integer inte16;
  164. integer uinte16;
  165. integer inte32;
  166. integer uinte32;
  167. integer inte64;
  168. integer uinte64;
  169. number num8;
  170. number unum8;
  171. number num16;
  172. number unum16;
  173. number num32;
  174. number unum32;
  175. number num64;
  176. number unum64;
  177. number numfloat;
  178. number numdouble;
  179. float float;
  180. double double;
  181. string string1; //英文
  182. string string2; //汉字
  183. union union;
  184. list[bool] lbool;
  185. list[int8] lint8;
  186. list[uint8] luint8;
  187. list[int16] lint16;
  188. list[uint16] luint16;
  189. list[int32] lint32;
  190. list[uint32] luint32;
  191. list[int64] lint64;
  192. list[uint64] luint64;
  193. list[integer] linte8;
  194. list[integer] linte16;
  195. list[integer] linte32;
  196. list[integer] linte64;
  197. list[number] lnum8;
  198. list[number] lnum16;
  199. list[number] lnum32;
  200. list[number] lnum64;
  201. list[number] lnfloat32;
  202. list[number] lnfloat64;
  203. list[float] lfloat;
  204. list[double] ldouble;
  205. list[string] lstring;
  206. list[union] lunion;
  207. }
  208. testnull {
  209. }