






















游戏大厅 从基础开始(3)
——最吸引眼球的部分 客户端与服务器的连接
看了上篇随笔的回复 发现大家都很关心如何实现连接。
但是本节可能不会涉及到数据连接的具体实现。
(补充: tcp实现封装已经完成 请参考 http://www.cnblogs.com/waynebaby/archive/2009/01/14/1375234.html)
盲目的实现连接 而不试图从更高的位置来考虑连接的作用,只能徒增耦合。
而网络传输的实现各有特点,耦合过高的话 ,稍不注意业务逻辑就会成为通讯协议的牺牲品。
这种状况 往往让我们产生"只能针对xxx传输协议"的架构 。
其实只要多加思考,我们便能跳出协议的樊篱,毕竟"遵循某个接口实现一个基于xx通讯协议的类" 属于那种可以几百块钱外包到"老少边穷地区地方大学贫困学生"的项目,耗费精力不一定值得。好吧,其实当年我就是这样一个很耗精力大学生,所以我们更要给年轻后辈锻炼的机会不是么!
封包是什么?
就是一坨数据。
可能是个问题,可能是个答案,可能是个"我还活着"的声明,可能是团乱码
其实没什么可说的, 大体上就是数据和标识
有的有利于工作时候查询数据,处理数据
有的有利于传输。
大家来跟我一起自我催眠
闭上眼睛
想象我们的网络游戏大厅是一个地方政府办公室,你的地盘你做主,你就是党委书记。
想象我们的客户端是一个个街道办事处。
互联网 就是邮政电信系统
我们的数据 就是一封一封的信件文档。
那么我们的连接应该是什么呢?
最早的实现传达室(UDP)
后来有了电话和传真机 (http)
数据专线 (tcp持续连接)
这些都是各种协议细节。
你要和一个街道办事处互通一下信息,
你需要自己去传达室么?
你需要亲自操作传真么?
你需要操作电脑,打开软件,登陆帐号, 发送信息么?
你需要了解这个街道办事处电话有没有欠费 是否有专线 邮递员有没有玩忽职守 以便决定你怎样传递信息么?
NO , NO ,你已经不是那个层次的人了,你是党的好干部,你只需要询问你的漂亮女秘书!
女秘书,懂么,很高科技哦!
来来美女 发个邮件出去 顺便把包裹去回来,恩再帮我安排明天下午和张太太喝下午茶。
有新技术了?msn? qq? Windows live meeting? 送女秘书去培训! 弄两个秘书轮流培训!
ICodec就是终端设备,其中包括传达室大爷、传真机、电话、msn 、qq 、数据专线 、微缩胶片 等等等等,把我们的文件变成可以传输的格式,从workingpack变成LinkPack.
眼熟么?这就是桥接模式 把部分功能的可替换实现做成另一个类,通过别的工厂根据配置文件产生后放入主类哦。
所以蜜和大妈的主要作的事情还是一样的,细节有所不同
Server端的小秘书是要连接Client端的 叫做 IClientLink
Client端的大妈是要连接 Server端的 叫做IServerLink
琛哥最近要有组织的摆地摊犯罪,为了防止城管打砸抢,给她们一人一个加密机要小秘书给大妈隐蔽的通风报信,只有用同规格的加密机才能解开对方的密文哦,女特务们加油。。。。
好吧 剩下的事情 就都是邮电系统该做的了。
参考代码:
IPack
Code
IWorkingPack
Code
IWorkingPackNode
Code
今天文件太多了 太麻烦了 其他的部分 我打包好了。。。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。