我想在OCaml中使用bin_prot进行Socket通信。但是,我找不到任何详细的解释或示例来做到这一点。之前我以另一种方式进行了Socket通信,所以我知道它的流程。
在OCaml中使用bin_prot进行Socket通信有没有很好的解释或示例?
答案 0 :(得分:1)
嗯,bin_prot只是一个序列化协议,并不依赖于你用于传输层的任何东西。基本上,要将值序列化为字符串,您可以使用Binable.to_string
函数(或Binable.to_bigstring
)。它接受一个打包模块。例如,要序列化一组整数,请执行以下操作:
let str = Binable.to_string (module Int.Set) mine_set;
其中mine_set
是整数集。
如果你有任意类型,实现bin_prot,那么它将工作相同。一个例子是:
module My_data = struct
type t = int * string with bin_io
end
let str = Binable.to_string (module My_data) (42,"answer")