怎样通过TCP/IP协议设计一种可以传输复杂高级语言对象的协议
从本质上看,不管是字段还是函数,都是二进制信息。传输信息的协议已经很普遍了,关键在于怎么封装信息。字段信息很容易,按题主的说法直接序列化成json或者xml就可以简单传输,或者序列化成二进制直接传输也可以。那么函数呢?首先传输函数十分危险。因为如果不过滤它的行为,而且运行端没有沙箱机制的话很可能因为MITM攻击造成灾难性的结果。实际上函数传输也很容易,函数的本质也是一段代表各种机器指令的二进制信息。无非是传输源码(或者中间代码)到目标机器编译或者是直接编译好的机器码。不过考虑到执行环境可能不同的话,我感觉还是传源码(或者中间代码)比较靠谱。拿.NET举例,你可以直接把一个Assembly序列化成二进制传过去。接收端可以直接Load上,JIT会自动编译,通过Invoke就可以这样调用里面的函数了。
■网友
【怎样通过TCP/IP协议设计一种可以传输复杂高级语言对象的协议】 proto buffer就是干这个的。。。
■网友
不行你试试sctp,不行的话还有mptcp,虽然mptcp连半成品都算不上。如果要整自己的协议最好不要用tcp/ip,tcp现在限制太多,而且既然整新的不如从socket开始。可以模仿mptcp。
■网友
先序列化再传输再恢复
推荐阅读
- 聪明人养花,这3种“花”怎样也要养一盆,每年能省不少医药费
- 船舶■江苏镇江谏壁船闸2020年船舶通过量近2亿吨
- 互联网怎样解决“家政服务上门速度慢”的问题
- 怎样看待从1月8号起,QQ钱包开始提现收费
- 银行it人怎样转型
- 汽车|冬天怎样让车内温度快速升高?座椅加热的最佳使用方式二,外循环的作用总结
- 怎样进入通信行业
- 红米手机通过QQ空间的成功营销,给涉足社会化营销的企业有哪些启示
- 怎样评价扶他柠檬茶的小说《云养汉》的结尾
- 怎样成为一名合格的Python程序员?