计算机网络课程设计多点通信.docx

上传人:b****4 文档编号:27153746 上传时间:2023-06-27 格式:DOCX 页数:11 大小:268.03KB
下载 相关 举报
计算机网络课程设计多点通信.docx_第1页
第1页 / 共11页
计算机网络课程设计多点通信.docx_第2页
第2页 / 共11页
计算机网络课程设计多点通信.docx_第3页
第3页 / 共11页
计算机网络课程设计多点通信.docx_第4页
第4页 / 共11页
计算机网络课程设计多点通信.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

计算机网络课程设计多点通信.docx

《计算机网络课程设计多点通信.docx》由会员分享,可在线阅读,更多相关《计算机网络课程设计多点通信.docx(11页珍藏版)》请在冰豆网上搜索。

计算机网络课程设计多点通信.docx

计算机网络课程设计多点通信

(计算机网络)

课程设计

实验时间:

专业年级:

实验题目:

socket通信—用VC++设计聊天室程序

指导老师:

目录

1、实验内容及要求....................................................3

2、可行性分析........................................................3

3、需求分析..........................................................4

4、设计流程图........................................................5

5、调试分析过程描述..................................................7

6、个人设计总结体会..................................................10

7、参考文献.........................................................14

 

1、实验内容及要求

1.1实验内容

该系统要求完成聊天室的全过程,包括客户端和服务器两大部分的编程及其连接。

服务器端聊天程序负责接收和发送来自客户端的聊天信息,客户端聊天程序负责建立和维护与服务器端的连接,想服务器发送本客户的聊天内容。

系统采用VISUALC++语言程序设计编程实现。

1.2实验要求

(1)按要求设计出相应的系统程序。

(2)按要求编写课程设计报告书,能正确编写分析、设计、编码、测试等技术文档和用户使用手册。

(3)进行系统的联合调试,编写系统使用说明。

(4)完成系统的文档、设计说明工作

2、可行性分析

本课程设计主要解决在客户端于客户端的信息交换和客户端于服务器的信息交换及服务器的信息处理上的管理的课程设计。

此程序主要分为两部分:

服务器端和客户端。

服务器端用于提供一个网络口,等待客户端发出请求,登录到此服务端,然后进行网络通讯和消息的转发;客户端可通过服务器端的IP地址发送连接请求,然后登陆聊天室。

在服务器端的成员列表栏中会显示在线的所有人名单,有人退出聊天室,成员列表会自动除名。

服务器端同时也提供了成员之间的私聊功能,此时服务器端作为一个转发站,进行消息的转发。

整个程序的主体使用了CSocket类的方法,实现了网络通讯聊天。

先启动服务器端聊天程序,这是聊天服务器需要指定一个端口号,客户端则根据这个端口号以及服务器的网络地址与服务器进行通信。

在这里,把端口号成为“聊天频道”。

在后面的程序代码分析中将看到,端口号并不等同于聊天频道,而是在聊天频道上增加一个固定的偏移值,使得这个聊天频道不会和系统保留的端口发生冲突。

服务器启动后将在这个指定的端口号中等待客户的连接。

对于公共聊天室,服务器对客户的数目不做任何限制。

而对于私人聊天室,每个聊天频道则只能允许两个客户互相连接,使得一方发送的信息只能到达对方的主机中。

这里的服务器提供的是公共聊天服务。

通过分析发现,该程序完全可以通过VisualC++中MFC完成。

3、需求分析

3.1设计目的

  综合运用本课程及计算机网络的相关知识设计并实现一个网络应用程序,以VisualC++作为开发平台,通过实践复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力。

3.2设计要求

采用客户/服务器模式,分为客户端程序和服务器端程序。

服务器采用WINSOCKI/O模型中的任一种,支持多个客户同时在线聊天。

客户端程序和服务器程序通过网络交换聊天字符串内容,服务器窗口的列表框中显示当前在线用户,支持客户端之间的私聊(可以通过服务器中转,或考虑UDP打洞直接建立端端连接)。

课程设计要求设计并编程完成两个方面的内容:

首先建立一个使用TCP协议的聊天室服务器,这个服务器可以同时支持多个用户的在线聊天;其次设计一个可以和服务器通信的聊天室客户端。

3.3功能要求

(1)支持多个客户端的连接,在服务器和多个客户端之间进行数据传输;

(2)接收客户端发送的消息,并显示在一个列表框中;

(3)在用户连接上后有提示,显示出连接的用户名字;

(4)发送信息时可以显示聊天的所有记录;

3.4系统主要功能和主要功能描述:

服务器端聊天程序必须能够做3件事情:

(1)服务器聊天程序要在待定的端口上等待来自聊天客户的连接请求,并且需要维护一个客户连接表,以记录所有成功的连接。

(2)服务器聊天程序要及时接受从各个聊天客户发送过来的信息,然后把这些信息转发到一个或多个客户连接。

对于公共聊天室,服务器将把接受到的信息向除源端外的所有客户发送过去。

(3)服务器还要监控这些连接的状态,在客户主动离开或发生故障时从列表中删除相应的表项,并及时更新连接表。

这些要求可以通过CSocket类提供的功能实现。

从CSocket派生出两个类CLSocket和CCSocket,它们分别用来侦听客户的连接请求和建立与客户的连接。

服务器只需要一个侦听套接字CLSocket,然后根据客户的连接请求动态创建客户套接字CCSocket。

客户套接字的数量是不可预知的,因此需要一个列表来记录。

MFC的CPtrList类就能实现这种功能。

客户端聊天程序需要完成以下几个功能:

(1)客户端聊天程序要负责建立和维护与服务器的连接,通过获取用户的设置尝试与服务器的连接,并且随时检测连接的状态。

(2)客户端聊天程序要把用户输入的信息及时发送到聊天服务器。

一般情况下,当用户输入一行信息并且按下回车键后聊天程序就要把这一行信息发送出去,才能及时地满足用户的交互需求。

(3)要随时准备好接受来自服务器的信息,随时把接受到的信息显示出来,让用户及时看到对方的响应。

(4)在用户退出聊天过程是要关闭与服务器的连接。

比较好的做法是提前通知服务器或者直接给服务器发送一条退出通知,使得服务器能够及时掌握客户端的连接状态,把对方客户的退出信息及时发送到对等实体上。

客户端聊天程序需要使用一个通过CSocket类派生出来的CChatSocket类来实现。

该套接字用来发送一个与服务器的连接请求和维持与服务器的连接,发送和接收聊天信息,完成上述各项功能。

 

4、设计流程图

根据对用户的要求及功能设置可以得到以下的流程图3.1,用户首先启动客户端,登陆服务器并向服务器发送信息,启动服务器,服务器等待客户要求并向客户反馈在线用户信息,用户向服务器发送信息,服务器处理用户的数据,然后用户开始聊天。

客户端的聊天分为对所有人的信息和私聊的信息,该信息应通过程序控制分别进行处理。

 

 

5、调试分析过程描述

登陆服务器:

在启动聊天室服务端的时候,会出现图5.1的界面,该界面为服务器的登陆界面。

图5.1登陆服务器界面

登陆客户端:

在启动客户端服务端的时候,会出现图5.2的界面,该界面为客户端的连接界面。

图5.2登陆客户端界面

图5.3为用户张三连接服务器界面,在输入用户名张三并点击确定后,出现如下界面:

图5.3张三登陆服务器

图5.4为用户李四的连接界面,在李四连接后,出现界面如下所示:

图5.4李四登陆服务器

图5.5为用户张三和李四登陆后的界面,服务器界面如下图所示:

图5.5用户登陆列表显示

开始聊天后,所出现界面如下图5.6所示:

图5.6聊天界面

用户断开连接,退出服务器后,所出现界面如下图5.7所示:

图5.7用户退出服务器界面

服务器管理员点击停止服务按钮后,服务器端将停止工作,重新出现如下图图5.8所示界面:

图5.8

5、个人设计的总结和体会

该次课程设计的制作我参考了图书馆和网上的一些相关书籍,找到一些类似的程序,然后按照书上的步骤一步步的做出来了,虽然这个程序算不上是我自己写出来的,但通过这样的一个过程,还是让我学会了很多东西,也算能比较熟练地掌握MFC这一个软件了,这算是一个不小的收获吧,而且,在做这个程序的过程中,让我认识到了在做这样程序中,遇到解决不了的问题与同学的讨论时很重要的,譬如可以以运行,但是就是无法出现连接的显示和状态。

最后与同学讨论后,才知道是服务器端有了错误,没有设置自己的IP地址,然后对于客户端进行了一番修改,才终于出现了上述的结果。

虽然没有彻底做的出来,但是还是比较开心的,因为自己知道了哪里不足,哪里不可以,可以在以后做多点练习来充实自己。

这次的课程设计也还存在这许多明显的不足,由于之前比较少接触到C++语言和MFC软件,所以做起来很多东西都很陌生,还有就是这次设计中还有一些功能,比如连接数据库,传文件等功能等没能实现,还有做出更大的改进。

因此以后还是需要多多的练习,多多的勤奋,这样才有可能让自己有信心,有动力,让自己不至于懂的太少而怯场,因为不懂而不会做,相信自己以后可以编写出让自己满意的程序。

 

6、参考文献

[1]任泰明著.TCP/IP协议与网络编程.西安电子科技大学出版社.2004

[2]唐克著.MFC程序设计:

UsingVisualC++6.0.北京希望电子出版社.2002

[3]邓全良著.Winsock网络程序设计.中国铁道出版社.2002

[4]《VisualC++6.0使用与开发》清华大学出版社,木林森、高峰霞、罗丽琼、奚红宇编著

[5]《Visualc++实用教程(第三版)郑阿奇,电子工业出版社

课程设计评分表

教师评阅:

□设计目的明确; □操作步骤正确; 

□设计文稿(表格、程序、数据库、网页)符合要求;

□设计结果正确; □设计分析总结全面; □设计报告规范;

课程设计答辩情况记录:

□思路清晰;语言表达准确,概念清楚。

□准备工作充分,具备必要的报告资料;报告在规定的时间内完成。

□回答问题有理论依据,基本概念清楚。

主要问题回答简明准确; 

□对前人工作有改进或突破,或有独特见解。

                    

评阅教师签名:

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1