★★★网络编程高手请进:探讨一下在线游戏中自定义的协议格式及打包解包的【设计模式】。详细见内。 就用XML打包的串,因为它便于扩充数据字段,容易升级及修改,而且发送的只是串,拆包及打包容易 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我认为再封装一边比较好typedef struct _NODEDOWN{ struct PrivateInfor; struct AddressInfor; struct StatusInfor; struct MessageInfor; struct ActionInfor; .....} NODEDOWN,*LPNODEDOWN;这样以后只要修改相应的类和类的函数,保持接口大致不变。 嗯?!你这是设计模式吗?不过你的协议传输如果使用“标签”(类似xml文档)接收方可以使用Builder模式读取和解析。参考:《设计模式》一书. 你说的第一种方式是把数据组装成XML来传送,优点是由很多现成的XML Parser包可用,还是比较方便;但数据量大一些;还可以使用类似HTTP协议那样的文本方式。第二种方法是不常用的,因为可能会涉及到许多变长的数据。通常要自己制订数据格式,并编写编解码程序,建议参考RADIUS的格式,一个很简单的通信协议,又很容易扩充。 嗯?!您这是讨论设计模式吗?如果你使用标签来传数据,接收方可以用Builder模式进行解析。参阅《设计模式》一书。 我认为可以将常用的数据放在结构里,参数使用XML格式进行传递。这样既可以方便处理各种命令及提高处理效率,又可以减少参数在改变时,造成的影响。 如何把文本数据和图片数据打包,分包发送?使用TCP协议 WTL中的这个类声明这段代码代表什么意思? 如果要在钩子的回调函数操作对话框上的控件,应该如何处理? 代理服务器软件怎么做?高分求救! 为什么异常还是不能被捕获 按钮重绘的问题? 如何用vc++6.0编写ping窗体程序,把返回的参数放入数据库中 一个连接错误? 请问有谁知道这种传感器 com编程的调试问题? 菜鸟问题,如何在主View中获得MainFrame的句柄? 请教文件操作的问题
typedef struct _NODEDOWN
{
struct PrivateInfor;
struct AddressInfor;
struct StatusInfor;
struct MessageInfor;
struct ActionInfor;
.....
} NODEDOWN,*LPNODEDOWN;
这样以后只要修改相应的类和类的函数,保持接口大致不变。
不过你的协议传输如果使用“标签”(类似xml文档)接收方可以使用Builder模式读取和解析。
参考:《设计模式》一书.
要自己制订数据格式,并编写编解码程序,建议参考RADIUS的格式,一个
很简单的通信协议,又很容易扩充。
如果你使用标签来传数据,接收方可以用Builder模式进行解析。参阅《设计模式》一书。