Socket客户端程序同时连接多种多个服务端-类怎么设计比较好
黑极 2014-12-24 04:45:02 目前在做一个项目,在类设计上有一些拿不准,还忘大家不吝赐教!
项目目前是用VC++、MFC做的客户端程序!
此程序会通过Socket通讯连接两类设备,每一类设备有至少3款,连接设备的数量不固定,每一类设备功能相似,通讯协议略有区别!
连接的设备都是Socket服务端,最好是多线程同时与各个设备上通讯。
目前是这么想的,每连接一台设备时,程序自动增加一个线程,根据设备类别自动初始化一个对应类来通讯
大概想法如下:
CSocketClient类继承CSocket:负责建立连接,调用ProtocolM1,ProtocolM2两个类
Stream类:负责打包、拆分数据包工作
ProtocolM1:第一类设备协议类,一些虚函数,一些此类设备的通用函数
ProtocolM2:第二类设备协议类,一些虚函数,一些此类设备的通用函数
ProtocolM1T1:继承ProtocolM1类,第一类第一款设备协议类,重写ProtocolM1设备中的虚函数
ProtocolM1T2:继承ProtocolM1类,第一类第二款设备协议类,重写ProtocolM1设备中的虚函数
...
ProtocolM2T1:继承ProtocolM2类,第二类第一款设备协议类,重写ProtocolM2设备中的虚函数
ProtocolM2T2:继承ProtocolM2类,第二类第二款设备协议类,重写ProtocolM2设备中的虚函数
...
新增设备时,跟据不同设备初始化CSocketClient中的ProtocolM1,ProtocolM2,
例如ProtocolM1 pm1 = new ProtocolM2T1();
还请大家帮忙看看可行么?如有表述不清的大家来问