软件课程设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件课程设计报告

电信学院 09 级电子专业题目简易网络聊天室

学生学号

指导教师

2012年4月26日

简易网络聊天系统

摘要:本设计在VC++6.0平台下利用MFC对话框工程实现了简易聊天室的设计,完成了简易聊天的各项基本功能,界面友好。要求能网络侦听,接受多个客户端的连接,一个聊天服务器和很多客户端进行通信,接受客户端发送的信息,能分析信息的含义并在服务器停止服务时,停止端口侦听,将停止服务器信息发给所有客户端。在实际编程中运用了C++语言,并通过学习socket编程实现了局域网内各节点通信。

关键字:MFC 聊天室 VC++编程CSocket类

1.引言

当今世界正处于信息时代,在互联网相当普及的今天,大众已经对互联网形成了相当的依赖性,局域网内多节点通信已经是非常普遍的简单需求。聊天室是适合于陌生人之间进行较为主观、感兴化的讨论。所以有大部分的人会进入聊天室聊天,它会给人一个完全自由的聊天世界。

基于SOCKET的局域网通信是一种灵活的、易于实现的、低成本的方法。它可以运行在各种使用TCP/IP协议作为通讯协议的网络上。而在SOCKET API的帮助下,开发基于SOCKET的局域网通信软件也是易于实现的。

2.设计依据及框图

2.1 设计平台

本设计主要在VC++6.0平台下,基于MFC的界面编程主要是面向对象的方法来调用Windows API,提供了文档框架视图结构和活动文档这样的便于自定义的应用程序框架。同时,在Visual C++内部也内建了很多对MFC的例如类向导这样的支持以减少软件开发的时间。

2.2 设计思想

本设计的总体思想是在基于MFC的界面编程基础上加入windows socket类实现局域网通信。本设计主要分为服务器端和客户端两部分组成。服务器端监听各个客户端节点发送的信息并把信息发送到相应的客户端。客户端实现发送和接受自己节点的信息。

2.3 设计框图

Server端Client端创建CClientSocket

对象,在某个端口

提供监听服务

等待来自Client

端的服务请求

接受Client端的请

求,用返回的CClientSocket建立

连接

向用

CClientSocket连

接建立的流中读

写数据

关闭CClientSocket,结束与当前Client的通信,等待其他请求

关闭CClientSocket对象,结束监听服务

创建CChatSocket对

象,向Server的监听

端口发出请求

向用CChatSocket

连接建立的流中读

写数据

关闭

CChatSocket,结

束与当前Server端

的通信

建立连接

拆除链路

数据通路

图1:连接过程流程

图一是总体的连接过程流图,服务器端创建socket对象后启动监听,等待客户端与服务器连接,客户端发送连接请求后与服务器连接,然后与服务器直接通信。关闭时服务器关闭当前通信,结束监听服务。

3各模块功能及主要模块的流程图

3.1 各模块功能简介

本设计主要分为以下各个模块:

1、用户登录服务器,客户端socket类创建,实现相应的监听功能。

2、客户端信息发送,客户端判断信息是否私聊信息,并把信息发送到服务器端。

3、客户端信息接受,客户端接受到服务器发送的信息后判断该信息为聊天信息是聊天信息还是用户列表信息。并在相信位置正确显示信息。

4、服务器启动监听,服务器创建socket 类,实现监听功能。

5、服务器接受信息后,对信息完成相应的判断并发送到相应的客户端。

3.2 主要流程图

发送新用户

信息

获取登录信

与服务器连接开始

创建socket 对象结束

开始监听

成功成功失败

失败

开始

是否私聊信息

加入privChat 和私聊对象昵称

信息发送

结束

获取发送信

图2:客户端登录流程图 图3:客户端信息发送流程图

图2为客户端登录流程图,用户输入登录信息后,程序创建socket 对象,与服务器连接,如果连接成功,就把新用户昵称发送到服务器。

图3为客户端信息发送流程图,判断信息是否是私聊信息,如果是则在发送信息前加入Privchat 和私聊用户昵称,然后将信息发送到服务器。

图4为客户端信息接受处理流程图,接受到信息后通过前面8个字母判断是否为用户列表信息,如果是,则根据信息的“|”分割依次获取用户昵称,并在用户列表框中完成显示。如果不是用户列表信息,则按照聊天信息在信息显示框完整显示接受到的信息。

图5为服务器接受信息处理流程图,服务器接受到信息后判断是否为新用户登录,如果是,则向各个客户端节点发送所有用户列表。否则,判断信息是否为私聊信息,如果是,则查找节点中昵称和私聊对象相同的用户,然后把信息发送到该节点。不是则判定信息为广播信息,把信息发送到每个用户节点。

开始

用户列表信息

信息框显示

用户列表框显示

结束是

开始

是否新用户信息发送用户列表信息到各节点是否私聊信息查找私聊对象,发送信息到相信节点发送信息到所有节点

结束

接受信息

否是

图4:客户端信息接受处理 图5:服务器接受信息处理

4 软件调试分析

设计最后运行效果如下:

相关文档
最新文档