基于TCP网络通讯上,自定义协议收发数据

发布时间:2016-12-6 18:15:05 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"基于TCP网络通讯上,自定义协议收发数据",主要涉及到基于TCP网络通讯上,自定义协议收发数据方面的内容,对于基于TCP网络通讯上,自定义协议收发数据感兴趣的同学可以参考一下。

其实 就是你一顶要有自己的报头 我一般是这样 协议标记(4字节,一个INT32)本协议内是固定的 频道号(4字节,一个INT32)我的个人习惯,我一般将一套程序的不同部分的数据传输用频道区分,这样在数据重组和转发上很方便 指令标记(4字节,一个INT32)本协议内制定了几种,但总归是有限的几种或者只有一种 数据体加密压缩KEY(8字节,一个LONG)根据需要这里存的是用来加解密或者压缩的KEY值。 数据包本身长度(8字节,一个LONG)就是有效数据的长度(我一般是实际长度然后补加上N个空字节,使数据体长度成为16字节的倍数 N=16+x ,X是16减去数据体本身长度除16的余数的结果)。 保留段(4字节,一个INT32)备用其他特色信息 数据体(N字节,N是16的整数倍数) 比如数据体序列化本身为 165字节,那么数据体包装后是192字节(165+11+16) 加上数据报头的32字节 一共发送224字节 接收放先读32字节头 分析后再读192 对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 fengyecsdn fengyecsdn 等级: #15 得分:0回复于: 2008-10-26 10:43:51 数据体超过长度的时候就要分片发送和接收 我一般是按2K或者4K分一片, 在我的数据体里都标记好 指令号 分片序号 总分片号  接收方准备队列数组,接到信息直接压到对应数组里。 满了就排序,反序列,OK就成功读取。如果出现错误 ,丢弃,向对方发送失败指令,并指定刚才的指令号

上一篇:一个专注工厂模式的农场(白银形态-工厂方法模式)
下一篇:LeetCode 31: Next Permutation

相关文章

相关评论