- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网络聊天设计
聊天室设计程序实验报告
1. 实验目的
本实验是基于VisualC++ MFC 进行开发,在整个实验开发的过程中,对MFC的对话窗框架结构的了解,掌握基本的运用MFC编写软件。对MFC的触发机制、消息映射以及对话框的关联全面的认识和掌握。增强编程能力,更好的适应个人今后的发展。
2. 功能要求(1)(2)客户可以通过服务器转发,实现一对一和对多聊天。(3)客户端程序应该可以实时显示目前其它用户状态()()应该具有易用、美观的图形界面。Windows Socket编程,服务器与客户端采用了TCP/IP连接方式,在设计聊天方案时,实行将所有信息发往服务器端,再由服务器进行分别处理的思路,服务器端是所有信息的中心。
服务器及客户端的功能可划分为以下模块:
客户端:
1) 登陆功能:建立与服务器的连接并登陆,能显示登陆错误信息。
2) 界面显示:将在线好友显示在好友列表中,并实现系统托盘,加入工具栏便于操作。
3) 聊天功能:与好友聊天。
4) 聊天纪录:能保存聊天纪录,并能察看聊天纪录。
5) 信息提示:能看到用户登陆和退出聊天室的提示及显示时间,。
服务器端:
向各个客户端发布系统消息。
接受来自客户端的各种信息并分别处理。
登陆信息:检查登陆信息是否正确,并向客户端返回登陆信息,如信息正确。就将在线用户发给该用户,并将该用户的状态发给各在线用户。同时在服务器端显示出来。
聊天信息:转发给消息指定的用户。
用户下线:将此用户下线消息发给各客户端,并改写用户在服务器端的状态。
程序中主要变量及类的功能说明如下:
客户端:
用户及发送信息结构体类型
typedef struct info int type; //type 0表示自己,type 1表示在线所有用户,type 2表示指定用户 char name[20]; char msg[200];
;
enum IDD IDD_CHAT_DIALOG ;
CListBox m_list1;//在线用户
CComboBox m_list;//消息发送到
CString m_send;//发送框
CString m_read;//消息框
CString m_me;//好看
初始化:
sin.sin_family AF_INET;
sin.sin_addr.s_addr ulAddress;
sin.sin_port htons 9000 ;
主要函数:
CChatDlg::OnCancel //点击取消按钮,退出
void CChatDlg::OnOK //点击确定按钮,进行聊天
send sockServer, char* sendinfo,sizeof sendinfo ,0
recv sockServer, char* reinfo, sizeof reinfo , 0 ;//从已连接的Socket接收 数据,为整形
接受不同类型的消息
type 1; m_read m_read+\r\n+strTime+你对大家说:+m_send; m_send strTime+m_name+对大家说:+m_send;//对方接收
type 2; LPCTSTR q toname; memcpy sendinfo.name,q,toname.GetLength +1 ;
m_read m_read+\r\n+strTime+你对+toname+说:+m_send; m_send strTime+m_name+对你说:+m_send;
设计结果 客户端:
输入服务器的IP地址进入聊天室或者选择退出
进入聊天室开始聊天
服务器端
监控用户登陆和退出消息,并发送相应消息给用户
6. 设计总结:
1 程序的应改进之处:
使用非模态对话框代替模态对话框。
聊天记录文件应该加密。
将不在线用户也显示出来,并能给不在线用户发送信息,在服务器端建立消息缓存。
只显示用户的好友,可以添加好友并修改信息。
2 个人小结
在做这次网络创新实验之前基本上还没接触过网络编程,这次实验是在边学习边实践的基础上完成的。本学期课和其他实验也很多,因此做的时间不多,做的结果不太好,这次网络实验可以说是在理解网络的基础上对Windows Socket 编程的一次学习过程,虽然做的不好,但也学到了很多知识,对自己以后进行网络开发有很大的帮助。
登陆到服务器
客户端
登录失败
显示在线用
户
接收各种信息
退出服务器
查看聊天纪录
服务器端
处理登录消息
转发聊天信息
处理退出信息
发布系统消息
文档评论(0)