本文配套源码
看了上篇随笔的回复 发现大家都很关心如何实现连接。
但是本节可能不会涉及到数据连接的 具体实现。
盲目的实现连接 而不试图从更高的位置来考虑连接的作用,只能徒增耦合。
而网络传输的实现各有特点,耦合过高的话 ,稍不注意业务逻辑就会成为通讯协议的牺牲品。
这种状况 往往让我们产生"只能针对xxx传输协议"的架构 。
其实只要多加思考,我 们便能跳出协议的樊篱,毕竟"遵循某个接口实现一个基于xx通讯协议的类" 属于那种可以几 百块钱外包到"老少边穷地区地方大学贫困学生"的项目,耗费精力不一定值得。好吧,其实 当年我就是这样一个很耗精力大学生,所以我们更要给年轻后辈锻炼的机会不是么!
先说封包
封包是什么?
就是一坨数据。
可能是个问题,可能是个答案,可能是个"我 还活着"的声明,可能是团乱码
其实没什么可说的, 大体上就是数据和标识
有的有 利于工作时候查询数据,处理数据
有的有利于传输。
连接的功能
大家来跟我一起自我催眠
闭上眼睛
想象我们的网络游戏大厅是一个地方政府办公室,你 的地盘你做主,你就是党委书记。
想象我们的客户端是一个个街道办事处。
互联网 就是 邮政电信系统
我们的数据 就是一封一封的信件文档。
那么我们的连接应该是什么呢?
最早的实现传达室(UDP)
后来有了电话和传真机 (http)
数据专线 (tcp持续 连接)
这些都是各种协议细节。
你要和一个街道办事处互通一下信息,
你需要自 己去传达室么?
你需要亲自操作传真么?
你需要操作电脑,打开软件,登陆帐号, 发送 信息么?
时间: 2024-10-26 21:42:01