文档介绍:模拟QQ聊天程序设计报告
----网络软件创新实验报告
一. 需求分析
开发背景
在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,类似QQ、网络聊天时一类的聊天系统的发展日新月异,因此产生了制作一个类似QQ的网络聊天工具的;而且通过制作该程序还能更好的学习网络软件编程知识。
功能要求
(1)登录功能。
(2)客户可以通过服务器转发,实现一对一和多对多聊天。
(3)实现呼叫功能。
(4)客户端程序应该可以实时显示目前其它用户的状态。
(5)应该具有易用、美观的图形界面。
运行环境
本系统基于WIN NT ESS XP设计,适用于WIN2000/WIN XP等系统,并需要安装office2000/office xp.
功能实现
。
2. 客户通过服务器转发,实现聊天功能。
3. 实时显示目前其它用户的状态。
4. 保存并能察看聊天纪录。
。
6. 易用、美观的图形界面,实现系统托盘。
总体方案
为实现网络聊天的功能,采用Windows Socket编程,服务器与客户端采用了TCP/IP连接方式,在设计聊天方案时,实行将所有信息发往服务器端,再由服务器进行分别处理的思路,服务器端是所有信息的中心。
由于服务器端要保存用户信息,我们利用数据库来实现这一功能,因此首先需要建立用户信息数据库。
在客户端保存聊天纪录和用户号码这一功能的实现中,采用了文件系统设计。
在信息到来及好友上线时,通过闪动托盘图标和播放不同的音乐进行提示。
建立消息链表来保存用户接收的各种消息。
服务器及客户端的功能可划分为以下模块:
客户端:
1) 登陆功能:建立与服务器的连接并登陆,能显示登陆错误信息。
2) 界面显示:将在线好友显示在好友列表中,并实现系统托盘,加入工具栏便于操作。
3) 聊天功能:与好友聊天。
4) 聊天纪录:能保存聊天纪录,并能察看聊天纪录。
5) 信息提示:闪动托盘图标提示到来信息,并播放不同音乐来提示。
6) 其他: 用户登陆成功,将保存其号码,以便下次登陆时,不必再输入而可以直接选择,显示登陆时间。
登陆到服务器
客户端
申请新的号码
显示在线用
户
接收各种信息
保存用户号码
保存聊天纪录
服务器端:
向各个客户端发布系统消息。
接受来自客户端的各种信息并分别处理。
登陆信息:检查登陆信息是否正确,并向客户端返回登陆信息,如信息正确。就将在线用户发给该用户,并将该用户的状态发给各在线用户。同时在服务器端显示出来。
聊天信息:转发给消息指定的用户。
申请信息:自动分配8位用户号码,并保存该用户,同时将信息返回给客户端。
用户下线:将此用户下线消息发给各客户端,并改写用户在服务器端的状态。
服务器端
处理申请信息
转发聊天信息
处理登陆信息
发布系统消息
程序中主要变量及类的功能说明如下:
客户端:
CLoginDlg --- 登陆到服务器
COptionsDlg ---- 设置要连接的服务器的地址及端口号
CReplyDlg ---- 显示好友发送的信息
CSendMsgDlg ----