系统设计与实现本系统在设计过程中采用流行的面向对象设计,逐步完成类图设计和详细设计这两个关键步骤。为后续使用面向对象编程语言C++进行实现打下基础。
4.1 完成类图设计
类图设计需要确定属性的格式以及将方法分配给相关的类。
图 4-1 系统总体类图
4.2 详细设计与实现
4.2.1 C/S网络通信模块
C/S网络通信模块主要用于服务器和客户端间的实时通信,服务器和客户端必须有一致的命令识别规则,因此必须自定义一套命令协议,本系统为保证使服务器和客户端通信的一致性,自定义命令协议如下:
客户端向服务器发送的命令:
UMS_LOGIN, //登录
UMS_EXIT, //退出
UMS_LOCK, //返回锁定屏幕
UMS_UNLOCK //返回解除屏幕锁定
服务器向客户端发送的命令:
UMR_LOGIN, //返回登录
UMR_EXIT, //返回退出
UMR_LOCK, //锁定屏幕
UMR_UNLOCK, //解除屏幕锁定
UMR_SHUTDOWN, //远程关机
UMR_REBOOT, //远程重启
UMR_LOGOUT, //远程注销
UMR_WARN, //警告
UMR_KICKOUT, //请出课堂
UMR_START_BOARDCAST, //开始广播
UMR_STOP_BOARDCAST //停止广播
为了避免使用多线程客户端多个窗口之间切换出错,客户端的网络模型使用WSAAsynSelect(异步选择)模型,并且为了提高程序的复用性,在客户端网络模块的实现中将Socket(套接字)的相关属性和操作封装成了CJSocket类。客户端WSAAsynSelect(异步选择)模型使用CJSocket具体实现如下:(1)CJSocket类的声明和实现文件:
JSocket.h:本文来自辣.文~论^文·网原文请找腾讯324,9114
class CJSocket
{
public:
CJSocket();
论文网http://www.751com.cn/
static BOOL VersionCheck(); //WinSock版本验证函数
BOOL InitSock(); //套接字初始函数
void SetServerIP(char *ip); //套接字绑定的IP设置函数
char* GetServerIP();//获取套接字绑定IP函数
void SetServerPort(unsigned int port); //套接字绑定的端口号设置函数
SOCKET GetSocket(); //获取套接字函数
BOOL SockSend(char* sendBuf, int len); //数据包发送函数
int SockRecv(char* recvBuf, sockaddr_in* peeraddr, int len); //数据包接收函数
void SockClose(); //关闭套接字函数
virtual ~CJSocket();
static sockaddr_in m_servaddr; //服务器地址
private:
static SOCKET m_socket;
char m_serverIp[16]; //服务器IP
unsigned short m_serverPort; //服务器端口号
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>
C++的多媒体屏幕广播教学系统设计 第8页下载如图片无法显示或论文不完整,请联系qq752018766