课设报告模板

课设报告模板

ID:879988

大小:196.53 KB

页数:26页

时间:2017-09-22

课设报告模板_第1页
课设报告模板_第2页
课设报告模板_第3页
课设报告模板_第4页
课设报告模板_第5页
资源描述:

《课设报告模板》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、TCPIP课设任务:任务一基于MFC的聊天程序任务二控制台下的简单抓包程序任务三基于MFC的聊天室程序(每个任务都要有一下几部分)目录一.需求分析2二.详细设计与实现6三.设计使用说明:18四.结果及分析:21任务一基于MFC的聊天程序一.需求分析计算机网络技术发展至今已经大大超越了人们当初的预想,无论是人们日常的工作还是学习,我们都越来越多的依靠到互联网。各种实时性的聊天娱乐软件也同时诞生,而且为我们的即时通讯带来了众多的方便,比如说大家所熟知的腾讯QQ、微软的MSN、移动的Fetion等,都是做的比较成功的实时聊天工具。随着网络的日益普及,各种聊天工

2、具也层出不穷,但当我们学习了《TCP/IP协议与网络编程》这门课程之后,我们便会觉得,其实要实现简单的网络通讯其实并不难。接下来的课程设计就是针对一个简单的网络聊天程序,利用MFC为开发工具,实现基本的通讯功能。此程序主要分为两部分:服务器端和客户端。服务器端用于提供一个网络端口,等待客户端发出请求,登录到此服务端,然后进行网络通讯和消息的转发;客户端可通过服务器端的IP地址发送连接请求,然后登陆聊天室。在服务器端的成员列表栏中会显示在线的所有人名单,有人退出聊天室,成员列表会自动除名。服务器端同时也提供了成员之间的私聊功能,此时服务器端作为一个转发站,

3、进行消息的转发。整个程序的主体使用了CSocket类的方法,实现了网络通讯聊天。整个程序设计为两个部分:服务器(ChatServer)和客户端(ChatClient)当客户端ClientN向对应的服务端口N发送了消息Message,服务端口N将Message复制给所有套接口列表(USERLIST)中的套接口缓冲区,然后向每个服务端口发送WRITE消息,使每个服务端口将Message发送给对应的客户端。这样,所有客户端就都获得了Message消息,实现了多人聊天功能。BOOLCClientSocketList::Sends(char*buff,intn){

4、CClientSocket*curr=Head;while(curr){curr->Send(buff,n);curr=curr->Next;}returntrue;}USERLIST表时多人聊天程序的核心,它是一个动态变化的链表,为空表示没有客户端建立了连接,不为空时每个元素就代表有一个客户端与服务器建立了连接。以下是此程序的效果截图:服务器端的效果截图客户端的效果截图功能描述:1一对一会话。此程序的服务器端除了能够提供多人会话的功能外,还提供了私人聊天功能,可以实现一对一的聊天。就是在消息转发的时候,私聊的消息只发给私聊的对象,而其他人看不到此消息,

5、但是此消息会通过服务器端转发,然后再到达目的客户端。2服务器登陆。服务器端开启之后处于监听状态,多线程工作,接受每一个用户的连接请求。而客户端只需输入服务器端的IP地址即可,端口在服务器端自动生成。3MFC为套接字提供的类有CAsynSocket和CSocket,CAsynSocket提供基于异步通信的套接字封装功能,CSocket继承与CAsyncSocket。它通常要和CSocketFIle及CArchive这两个类混合使用。后两个类主要负责的是数据的发送和接收。CSocket提供的通信为同步通信。数据未接收或是未发送完之前请用不会返回。本次的聊天程

6、序就是通过派生CSocket来完成服务器和客户端功能。二.详细设计与实现设计流程图启动登陆等待客户端登陆客户端用户创建子套接字MessageChatServerChatClientMessage登陆成功连接上发送message显示找到客户端并显示登陆失败发送ID和IP设计步骤:本聊天程序实现工具为VisualC++6.0MFC,主要利用其中用于网络编程的CSocket类实现网络通讯功能。主要程序分为两部分:1、服务器端,界面如下图所示:主要代码如下所示:(1)、CChatServer端核心代码:voidCAboutDlg::DoDataExchange(

7、CDataExchange*pDX){CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CAboutDlg)//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CAboutDlg,CDialog)//{{AFX_MSG_MAP(CAboutDlg)//Nomessagehandlers//}}AFX_MSG_MAPEND_MESSAGE_MAP()//CChatServerDlgdialogCChatServerDlg::CChatServerDlg(CWnd*pParent/*=NULL*/)

8、:CDialog(CChatServerDlg::IDD,pParent){//

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。