- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中南民族大学
软件课程设计报告
电信 学院 09 级 电子 专业
题目 简易网络聊天室
学生 学号
指导教师
2012年4月26日
简易网络聊天系统
摘要:本设计在VC++6.0平台下利用MFC对话框工程实现了简易聊天室的设计,完成了简易聊天的各项基本功能,界面友好。要求能网络侦听,接受多个客户端的连接,一个聊天服务器和很多客户端进行通信,接受客户端发送的信息,能分析信息的含义并在服务器停止服务时,停止端口侦听,将停止服务器信息发给所有客户端。在实际编程中运用了C++语言,并通过学习socket编程实现了局域网内各节点通信。
关键字:MFC 聊天室 VC++编程 CSocket类
引言
当今世界正处于信息时代,在互联网相当普及的今天,大众已经对互联网形成了相当的依赖性,局域网内多节点通信已经是非常普遍的简单需求。聊天室是适合于陌生人之间进行较为主观、感兴化的讨论。所以有大部分的人会进入聊天室聊天,它会给人一个完全自由的聊天世界。
基于SOCKET的局域网通信是一种灵活的、易于实现的、低成本的方法。它可以运行在各种使用TCP/IP协议作为通讯协议的网络上。而在SOCKET API的帮助下,开发基于SOCKET的局域网通信软件也是易于实现的。
设计依据及框图
2.1 设计平台
本设计主要在VC++6.0平台下,基于MFC的界面编程主要是面向对象的方法来调用Windows API, 提供了文档框架视图结构和活动文档这样的便于自定义的应用程序框架。同时,在Visual C++内部也内建了很多对MFC的例如类向导这样的支持以减少软件开发的时间
图1:连接过程流程
图一是总体的连接过程流图,服务器端创建socket对象后启动监听,等待客户端与服务器连接,客户端发送连接请求后与服务器连接,然后与服务器直接通信。关闭时服务器关闭当前通信,结束监听服务。
各模块功能及主要模块的流程图
3.1 各模块功能简介
本设计主要分为以下各个模块:
用户登录服务器,客户端socket类创建,实现相应的监听功能。
客户端信息发送,客户端判断信息是否私聊信息,并把信息发送到服务器端。
客户端信息接受,客户端接受到服务器发送的信息后判断该信息为聊天信息是聊天信息还是用户列表信息。并在相信位置正确显示信息。
服务器启动监听,服务器创建socket类,实现监听功能。
服务器接受信息后,对信息完成相应的判断并发送到相应的客户端。
3.2 主要流程图
图2:客户端登录流程图 图3:客户端信息发送流程图
图2为客户端登录流程图,用户输入登录信息后,程序创建socket对象,与服务器连接,如果连接成功,就把新用户昵称发送到服务器。
图3为客户端信息发送流程图,判断信息是否是私聊信息,如果是则在发送信息前加入Privchat和私聊用户昵称,然后将信息发送到服务器。
图4为客户端信息接受处理流程图,接受到信息后通过前面8个字母判断是否为用户列表信息,如果是,则根据信息的“|”分割依次获取用户昵称,并在用户列表框中完成显示。如果不是用户列表信息,则按照聊天信息在信息显示框完整显示接受到的信息。
图5为服务器接受信息处理流程图,服务器接受到信息后判断是否为新用户登录,如果是,则向各个客户端节点发送所有用户列表。否则,判断信息是否为私聊信息,如果是,则查找节点中昵称和私聊对象相同的用户,然后把信息发送到该节点。不是则判定信息为广播信息,把信息发送到每个用户节点。
图4:客户端信息接受处理 图5:服务器接受信息处理
4 软件调试分析
设计最后运行效果如下:
图6:服务器界面截图
图7:客户端界面截图
设计主要分为服务器端和客户端两个界面。图6和图7分别展示了服务器和客户端的界面效果。实现了群聊,私聊以及显示所有用户列表的功能。达到了简易聊天室的设计要求。
5 结语
5.1 结论与讨论
本设计在VC++6.0平台下完成了简易网络聊天室,实现了简易聊天室的各项设计要求,设计界面友好。在本设主要是在MFC简易对话框工程下利用Csocket类实现局域网内通信。MFC界面编程比较简单,本设计的主要难点是服务器和客户端之间私聊功能实现和用户列表信息与普通聊天信息的区别,个人在程序中通过把信息的前面8个字符赋予信息的区别意义,通过
文档评论(0)