登录 注册
当前位置:主页 > 资源下载 > 50 > TCP网络封包的最简单解包及序列化补充

TCP网络封包的最简单解包及序列化补充

  • 更新:2024-06-03 16:26:20
  • 大小:13KB
  • 推荐:★★★★★
  • 来源:网友上传分享
  • 类别:C++ - 后端
  • 格式:RAR

资源介绍

将数据能够在TCP中进行传输的两种方法 1.直接拷贝struct就可以了; 2.序列化。 拷贝Struct存在的问题 1.不能应付可变长类型的数据,比如STL中的那些容器,当然,STL的容器归根到底就是一个class,他们的长度都是不确定的; 2.内存对齐的问题,Windows默认的对齐是4字节,如果不去刻意关闭掉对齐的话,那么可能会多出不少没必要的字节数,但是如果关闭了,内存拷贝又会慢一些。 序列化是怎么序列化的? 其实很简单,我们使用一个uint8类型的数组,假设我们这里有一个uint16类型的数据,那么我们就把它拷贝进去uint8的数组里面,那么它就占了两个元素。这是最基本的规则。具体请参考代码里面的ByteBuffer::append()方法。而那些class神马的,我们只要按照自己设定的规则顺序拷贝进去就可以了。这个在BytBuffer里面默认支持了常用的STL容器,可以参看代码。