旧协议需要改变时,如何保持和旧协议的兼容。
来源:互联网 发布:h.323 端口 编辑:程序博客网 时间:2024/05/19 16:22
两大方法:
一,扩展旧协议
二,重新定义新协议
下面讨论扩展旧协议的两种方法:
1,版本号:每个协议都有个版本号(或者只需要一个客户端的版本号就可以???)。服务器兼容客户端好办,因为服务器可以随时升级。考虑服务器兼容不能及时升级的客户端的问题。
服务器上的代码
if( ver == 1)
{
///解析REQ结构
///给客户端回版本号为1的ACK协议结构
}
else ///if( ver == 2 ) 不要做这种限制 因为有时候REQ协议没改 但处理流程改了(这时候版本号也会改的)
{
///解析REQ结构
///给客户端回版本不是1的ACK协议的结构
}
2,不依赖版本号 依赖TKSUFFIXIDX 然后把新增的内容都放在最后。
如果处理流程改了而协议结构没改,依赖TKSUFFIXIDX就不太合适了。这时只能定义新协议了。定义新协议还需要把一些旧协议的处理流程搬到新协议里面或者抽取出来定义成公共函数
总结:兼容旧版本有三种方式
1,新增的都放在后面。
2,版本号
3,定义新协议
- 旧协议需要改变时,如何保持和旧协议的兼容。
- 如何安装旧的kernel
- 旧工程适应 iphone5 坐标的改变
- 旧工程适应 iphone5 坐标的改变
- MYSQL重装时需要旧密码解决方法
- MYSQL重装时需要旧密码解决方法
- 前端开发之如何兼容IE8等旧IE浏览器
- 如何删除旧的data model version
- xCode中如何安装旧的模拟器
- linux 依赖旧的包 如何解决
- 如何删除Fedora的旧内核
- HTML5新增元素兼容旧浏览器的解决办法
- 如何国际化旧项目
- 皇帝的新装和旧装
- 新GRE和旧GRE的区别?
- 如何防止他人使用旧id和旧口令访问Domino服务器?
- SVN回复旧的历史版本-需要svnadmin权限
- 新技术替换旧技术需要注意的点
- UI -- Core animation教程(共三章)
- 结合舞蹈更易理解的算法--插入排序算法[java代码]
- VMware CTO辞职 加入General Catalyst
- maven简介及安装配置
- 如何用MFC制作类似VS2005或VS2008的界面
- 旧协议需要改变时,如何保持和旧协议的兼容。
- 修改UITableView section header title的样式
- component的概念
- 在redhat6.3 安装oracle 11.2.0.1遇到的错误
- stl find_if && 仿函数重写比较
- Hibernate实现Clob和Blob对象的存取
- 拦截器
- MP4系列之--如何获取mp4文件信息
- Android 百度地图开发之地图不刷新问题解决