基于VC++的网络即时通信软件的设计与实现(7)

2019-04-10 09:02

沈阳理工大学学士学位论文

6 网络即时通信软件开发的系统实现

系统实现是将结构化系统设计的成果变成可实际运行的系统的过程。本章将把系统的详细设计中的用户注册、用户登录、消息传送、文件传输、用户信息查询、个人信息修改、启动停止服务、查看在线用户、用户信息管理、数据消息处理等模块变成可实际运行的系统。

6.1 系统主框架的实现

由于该系统基本架构为基于对话框的MFC应用程序,所以以主框架模块由两个类构成,它们都是由MFC应用程序向导所生成:CNetMsgServerApp类以及CNetMsgServerDlg类,类结构如图6.1和图6.2所示。

其中以大写字母开头的为类成员函数,以小写字母m开头的为类成员数据。下面对这两个类的设计进行详细的说明。

图6.1 服务端两个主框架类结构示图

27

沈阳理工大学学士学位论文

图6.2 客户端两个主框架类结构示图

CNetMsgServerApp类为应用程序主框架类,它在后台完成了一个基于MFC的应用程序的所有基本的初始化工作,如果用户需要在程序的初始化时加入一些自定义的操作,只需在其中的InitInstance()函数中加入就可以了。在本程序中,只需要将WINDOWS SOCKETS的网络初始化工作完成。在每一个基于MFC的WIN32程序中,它都是通过一个由全局对象启动整个初始化过程的机制,因为根据C++ 的设计,一个全局对象的

28

沈阳理工大学学士学位论文

生成即其构造函数的调用要先于程序的入口函数。所以,在这个对象的构造函数中可以做很多准备工作,这个对象就是程序主框架类的对象,具体到本程序中,即是上面讲到的CNetMsgServerApp类。

CNetMsgServerDlg类为应用程序主显示对话框类,它是由MFC的内部机制生成的一个类,这个类将被做为程序的主显示对话框类,它在整个系统的消息循环以及程序处理中起着非常重要的作用,绝大多数的用户交互都将在这个类的成员函数中定义并完成。

6.2 服务端功能模块的实现

系统服务器端的功能模块主要包括:服务启动停止模块、用户信息管理模块和数据消息处理模块。

(1)启动停止服务模块的实现

启动服务模块是基于CNetMsgServerDlg类的OnServerBegin()方法来实现的,其运行界面如图6.3所示。主程序启动后将建立两个线程,其中一个线程处理各个客户端的连接请求,另一个在客户端请求连接成功后处理接收到的命令并返回信息,包括用户注册、登录、查询修改某个在线用户的信息等。停止服务模块是基于CNetMsgServerDlg类的OnServerStop()方法来实现的。

图6.3 启动停止服务界面

(2)用户信息管理模块的实现

用户信息管理模块是Global中的全局函数实现的。

29

沈阳理工大学学士学位论文

LoginIn函数用于用户登录。用户手动输入用户名和密码,检查用户名和密码是否正确,不正确则提示用户,正确就将该用户加入在线成员列表。

RegisterUserInfo函数用于用户注册。用户输入注册信息,该函数读取数据库,读取成功后操作数据库存储信息。

DealCommand函数用于用户信息修改、查看在线用户列表、用户信息查看。当用户登录成功后发送一个LIST命令,该函数就将在线用户列表发送给客户端界面。用户点击查看用户资料时发送一个GINF命令,该函数就读取该用户信息并显示。用户修改个人信息时发送一个UINF命令,该函数接收修改后的用户信息并修改数据库记录。

(3)数据消息处理模块的实现

数据消息处理模块是Global中的全局函数实现的。

SendRes函数提供数据发送的功能,调用WSAsend函数进行消息的发送。当函数成功返回时,返回值为实际发送的字节数。当函数调用失败时,返回SOCKET_ERROR。

RecvReq函数用于接收数据,当有数据到达系统的时候触发该函数,该函数内部调用WSAsend函数进行消息的发送。当函数成功返回时,返回值为实际发送的字节数。当函数调用失败时,返回SOCKET_ERROR。

6.3 客户端功能模块的实现

系统客户端的功能模块主要包括:用户注册模块、用户登录模块、用户信息查询模块、个人信息修改模块、查看在线用户、消息发送模块、文件传输模块。

(1)用户注册模块的实现

用户注册模块是基于CLoginDlg类的OnRegister()方法来实现的。注册的信息最重要的就是用户的昵称以及密码,当然还包括其他个人资料信息。用户唯一的标志是服务器提供的用户号码,当且仅当用户提出注册请求的时候,服务器才根据数据库中的信息提供新的用户一个用户号码,用户通过号码和个人密码进行后续的登陆操作。

用户输入注册信息:密码、昵称、性别、年龄、地区,点击确定注册成功,其运行界面如图6.4所示。

(2)用户登录模块的实现

用户登录模块是基于CLoginDlg类的OnLogin()方法来实现的。通过服务器的用户管理,提供用户的登录功能。用户只有通过登录的方式才可以进入主界面获取在线用户列表,然后才可以进行信息的交流和其他操作。

30

沈阳理工大学学士学位论文

用户输入用户名和密码和服务器IP地址,系统数据库验证信息,登录成功,其运行界面如图6.5所示。

图6.4 用户注册界面

图6.5 用户登录界面

(3)用户信息查询模块的实现

用户信息查询模块是基于CChatDlg类的OnShowinfo()方法来实现的。某用户可以查询到当前在线的用户信息。这里的信息主要是指用户号码,通过用户的号码来查询用户的昵称、地区、年龄、性别等信息 。

双击要的用户弹出对话框,点击查询资料按钮,想要查询的用户的注册信息就会显示出来,其运行界面如图6.6所示。

31


基于VC++的网络即时通信软件的设计与实现(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:备孕问题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: