请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

序列化的问题

老师你好, 

1. 函数能不能直接被序列化呢? 就是不只序列化函数名称, 我想把整个函数都序列化可以吗?

2. 对象为什么不能直接在网络上传输呢?

谢谢老师!!!!

正在回答

1回答

网络上传输的是字节流。对象的内部很可能带有指针(即使你没有定义),这些指针里面的地址传到别的机器一定是无法访问的。
序列化就是把对象转成能够传输并且可以被反序列化复原的字节流。所以网络上传输一定要通过序列化反序列化。只是大部分情况,如果只是一些数据,字符串啥的,我们不需要考虑,系统会帮我们做。
函数就比较复杂了。它对应指令,指令还可以各种跳转,还会有环境的依赖,这些很难提供一个统一的序列化方法。所以往往需要我们对具体的函数进行自行设计。

0 回复 有任何疑惑可以回复我~
  • 提问者 鱼右 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2018-12-23 11:02:47
  • 提问者 鱼右 #2
    老师, 是不是函数与struct都很复杂, 那么protobuf是不是 就是 解决这个事情的呢? 我不太理解
    回复 有任何疑惑可以回复我~ 2018-12-26 17:13:18
  • ccmouse 回复 提问者 鱼右 #3
    protobuf也不能解决这个问题。他只是一个比json更省网络带宽的序列化方案。但是都是把内存的数据转化成字节流。
    回复 有任何疑惑可以回复我~ 2018-12-29 21:20:44
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信