惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - MSFT:waywa 韦恩卑鄙

[UWP]一种利用Behavior 将StateTrigger集中管理的方案 【干货】个人工作文档节选:XAML MVVM 框架易用性细节优化Tips MVVM Sidekick Win8 RT 轻量级MVVM框架开源 对资源加读写锁的容器 对不能用using的成对操作,快速扩展IDisposable的方法 intel I7平台Win7 x64 下wpf、silverlight 与aero特效动画缓慢故障排除一则 今天被Prism里面的一段代码雷到了 1080*1920 下看网站很爽 游戏大厅 从基础开始(8)--绕回来细说聊天室(下)垃圾列表 游戏大厅 从基础开始(7)--绕回来细说聊天室(中间偏下)之女仆编年史2 游戏大厅 从基础开始(6)--绕回来细说聊天室(中)之女仆编年史1 - MSFT:waywa 韦恩卑鄙 游戏大厅 从基础开始(5)--绕回来细说聊天室(上) 简单的树遍历枚举器v0.2-挑战一个程序员到底能多懒- 添加广度优先遍历 一时技痒 不用模拟第一印象的构造 通过三个观察得来的规律解决N^2个往返接力问题 游戏大厅 从基础开始(4)-通过L2X用配置文件反射组装程序(VB only) 关于silverlight depencyobject简单的clone silver light 2 客户端的伪DataTable for EF X360吉他英雄4鼓套装 &1 TB硬盘入手 游戏大厅 从基础开始(3.5)——最吸引眼球的部分 客户端与服务器的连接 的实现 - MSFT:waywa 韦恩卑鄙
游戏大厅 从基础开始(3)——最吸引眼球的部分 客户端与服务器的连接
MSFT:waywa 韦 · 2008-12-19 · via 博客园 - MSFT:waywa 韦恩卑鄙

游戏大厅 从基础开始(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.

眼熟么?这就是桥接模式 把部分功能的可替换实现做成另一个类,通过别的工厂根据配置文件产生后放入主类哦。

话说回来,难道各个街道主任也要势必躬亲么? No, 没有女秘难道没有街道大妈?

所以蜜和大妈的主要作的事情还是一样的,细节有所不同

Server端的小秘书是要连接Client端的 叫做 IClientLink

Client端的大妈是要连接 Server端的 叫做IServerLink

更高级的需求,我们的小秘书和街道大妈 其实都是琛哥派来的卧底,她们就是查理的天使,安插在街道办事处里的天使。

琛哥最近要有组织的摆地摊犯罪,为了防止城管打砸抢,给她们一人一个加密机要小秘书给大妈隐蔽的通风报信,只有用同规格的加密机才能解开对方的密文哦,女特务们加油。。。。

好吧 剩下的事情 就都是邮电系统该做的了。

 参考代码:

IPack

Code

IWorkingPack

Code

 IWorkingPackNode

Code

 今天文件太多了  太麻烦了 其他的部分 我打包好了。。。

  https://files.cnblogs.com/waynebaby/Communicate.rar