二进制格式类似于C/S架构,需要双方语言实现二进制数据的序列化和反序列化,只要语言实现一致即可,整个数据流格式:2或4个字节包长度+包体erlang的封装和解码都可以使用diver的{packet,4}解决,比较方便
包体的格式
- 自定义格式
4个字节协议号+数据
数据编码解码可以直接使用term_to_binary和binary_to_term,就是python端比较麻烦 - 使用通用序列化
比如json
erlang代码
start_link() ->
gen_server:start_link({local, ?SERVER}, ?MODULE, [], []).
stop() ->
gen_server:cast(?SERVER, 'stop').
twice(X) -> gen_server:call(?SERVER, {'$py_apply', {twice, X}}, 5000).
sum(X, Y) -> gen_server:call(?SERVER, {'$py_apply', {sum, X, Y}}, 5000).
%%%=======================================================&#