邓嘉民:Socket开发框架之框架设计及分析.docx

邓嘉民:Socket开发框架之框架设计及分析.docx

ID:62004917

大小:538.92 KB

页数:10页

时间:2021-04-10

邓嘉民:Socket开发框架之框架设计及分析.docx_第1页
邓嘉民:Socket开发框架之框架设计及分析.docx_第2页
邓嘉民:Socket开发框架之框架设计及分析.docx_第3页
邓嘉民:Socket开发框架之框架设计及分析.docx_第4页
邓嘉民:Socket开发框架之框架设计及分析.docx_第5页
资源描述:

《邓嘉民:Socket开发框架之框架设计及分析.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、文档邓嘉民:Socket开发框架之框架设计及分析 虽然在APP应用、Web应用、Winform应用等大趋势下,越来越多的企业趋向于这些应用系统开发,但是Socket的应用在某些场合是很必要的,如一些停车场终端设备的接入,农业或者水利、压力监测方面的设备数据采集等,以及常见的IM(即时通讯,如腾讯QQ、阿里旺旺等)的客户端,都可以采用Socket框架进行相关的数据采集和信息通讯用途的,Socket应用可以做为APP应用、Web应用和Winform应用的补充。  1、Socket应用场景  一般情况下,客户端和服务端进行Socke

2、t连接,需要进行数据的交换,也就是后台提供数据查询或者写入的相关操作,它们的应用场景也是在后台有一个应用数据库支持的,如下所示。 10/10文档  Socket服务器和客户端的通讯原理如下所示,客户端通过服务器地址和端口发起Socket连接,服务器在接收到Socket客户端的请求后,开辟一个新的Socket连接进行通讯管理,两方基于Socket协议进行数据的交互处理。   2、Socket框架设计思路  Socket开发是属于通信底层的开发,.NET本身也提供了非常丰富的类来实现Socket的开发工作,Socket框架应针对这

3、些基础功能进行了很好的封装处理,已达到统一、高效的使用。  要掌握或者了解Socket开发,必须了解下面所述的场景及知识。  TCP客户端,连接服务器端,进行数据通信  TCP服务器端,负责侦听客户端连接10/10文档  连接客户端的管理,如登陆,注销等,使用独立线程处理  数据接收管理,负责数据的接受,并处理队列的分发,使用独立线程处理,简单处理后叫给“数据处理线程”  数据处理线程,对特定的数据,采用独立的线程进行数据处理  数据的封包和解包,按照一定的协议进行数据的封装和解包  针对以上内容,可以封装以下功能的操作类作为

4、共用基类:  BaseSocketClient,客户端基类,负责客户端的、断开、发送、接收等操作。  BaseSocketServer,TCP服务器管理基类,负责在独立的线程中侦听指定的端口,如果有客户端连接进来,则进行相应的处理。  BaseClientManager,连接客户端管理类,该类主要负责客户端登录超时处理,连接上来的客户端维护,经过登陆验证的客户端维护,客户端登陆验证接口,客户端发送数据处理等功能。  BaseReceiver,数据接收处理类,该基类是所有接受数据的处理类,负责维护数据的队列关系,并进一步进行处理

5、。  ThreadHandler,数据独立线程处理类,对每个不同类型的数据(不同的协议类型),可以用独立的线程进行处理,这里封装了一个基类,用于进行数据独立线程的处理。  1)Socket客户端基类  我们知道Socket通讯,分为了客户端和服务端,它们各自处理的事情是有所不同的,因此为了实现更好的代码重用,我们在这个基础上进行了不同的封10/10文档装。针对Socket客户端类,我们主要需要提供基础的Socket连接及断开、接收及发送、封包拆包等常规操作过程,因此我们封装了一个客户端基类BaseSocketClient。  

6、但是为了基于不同的应用客户端,实现不同的业务沟通,我们可以在服务端接收处理不同的客户端,因此也就是需要对Socket客户端进行派生扩展,例如本框架增加了一个中心的Socket客户端、分店的Socket客户端、还有一个桥接的连接客户端(可实现转发数据功能)。   2)Socket服务端基类  相对于Socket客户端基类,同样我们也创建一个Socket服务端基类,通过继承的方式,我们可以用于简化代码的重复性。该服务端基类称为TCP服务器管理基类BaseSocketServer,负责在独立的线程中侦听指定的端口,如果有客户端连接进

7、来,则进行相应的处理。  同样我们也派生了两个服务端的基类,方便对不同的Socket客户端进行差异性处理,如对应上面的中心客户端类ClientOfCall,我们增加一个对应的服务端类ServerForCall,其他的也类似,它们的继承关系如下所示。10/10文档   另外,由于我们允许不同的Socket客户端类(如ClientOfCall、ClientOfShop)的接入,那么在服务器端也会有对应Socket服务端类(ServerForCall、ServerForShop)进行不同端口的侦听,一旦在自己所属端口有Socket接

8、入,那么服务端类会分派给不同Socket客户端管理类来处理他们的关系和数据,这样也就进一步引入一个客户端管理类的概念,它对应不同的Socket客户端。  这里也根据需要定义了一个Socket客户端管理基类BaseClientManager,这个T代表对应不同的客户端,这样我们

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。