基于VC的网络聊天系统研究设计与实现文档格式.docx

上传人:b****6 文档编号:16161056 上传时间:2022-11-21 格式:DOCX 页数:13 大小:102.81KB
下载 相关 举报
基于VC的网络聊天系统研究设计与实现文档格式.docx_第1页
第1页 / 共13页
基于VC的网络聊天系统研究设计与实现文档格式.docx_第2页
第2页 / 共13页
基于VC的网络聊天系统研究设计与实现文档格式.docx_第3页
第3页 / 共13页
基于VC的网络聊天系统研究设计与实现文档格式.docx_第4页
第4页 / 共13页
基于VC的网络聊天系统研究设计与实现文档格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

基于VC的网络聊天系统研究设计与实现文档格式.docx

《基于VC的网络聊天系统研究设计与实现文档格式.docx》由会员分享,可在线阅读,更多相关《基于VC的网络聊天系统研究设计与实现文档格式.docx(13页珍藏版)》请在冰豆网上搜索。

基于VC的网络聊天系统研究设计与实现文档格式.docx

3.1.1服务器3

3.1.2客户端3

3.2非功能描述4

4系统设计4

4.1系统关键技术4

4.1.1WindowsSocket网络编程接口4

4.2系统设计4

5系统实现5

5.1开发平台5

5.1.1开发环境5

5.1.2运行环境6

5.2技术实现6

5.2.1服务器端6

5.2.1客户端7

5.3运行结果8

5.3.1服务器界面8

5.3.1客户端界面9

结论10

参考文献10

1绪论

1.1系统的研究背景

当今世界正处于信息时代,计算机和通信网络是这一时代所谓“信息基础设施”。

在互联网相当普及的今天,在互联网上聊天对很多“网虫”来说已经是家常便饭了。

聊天室程序可以说是网上最简单的多点通信程序。

一个简单的聊天室,从程序员的观点来看就是在多个I/O端点之间实现多对多的通信。

基于SOCKET的网络通信是一种灵活的、易于实现的、低成本的方法。

它可以运行在各种使用TCP/IP协议作为通讯协议的网络上。

而在SOCKETAPI的帮助下,开发基于SOCKET的网络通信软件也是易于实现的。

1.2系统的研究目标

本文讨论一种基于Socket的网络聊天软件的设计与具体实现方法。

基于Socket的网络聊天软件可以为网络内用户提供一种快捷,良好,方便的通信方式,网络内的全部机子可以通过一个服务器建立的聊天室进行聊天。

对于它的实现,用户不需对原有的网络硬件进行任何改动,具有实现成本低廉的优点,它的使用能有效地提高网络的使用效率,可以很好地解决用户内部网络的即时通信需求。

本系统主要分为两部分:

服务器端和客户端。

服务器端用于提供一个网络端口,等待客户端发出请求,登录到此服务端,然后进行网络通讯和消息的转发;

客户端可通过服务器端的IP地址发送连接请求,然后登陆聊天室。

先启动服务器端聊天程序,这是聊天服务器需要指定一个端口号,客户端则根据这个端口号以及服务器的IP地址与服务器进行通信,服务器启动后将在这个指定的端口号中等待客户的连接。

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

1.3本文的主要结构

本文主要描述了聊天系统开发的总体流程,包括绪论,Winsock概述,系统分析,系统设计,系统实现,结论,参考文献。

第一章为绪论,主要描述了系统的研究背景和系统的研究目标。

第二章为系统开发工具以及相关介绍,主要描述了MFC技术和winsock。

第三章为系统分析,主要介绍系统的功能需求分析和非功能需求分析。

第四章为系统设计,WindowsSocket网络编程接口技术,并给出了系统的设计结构。

第五章为系统实现,主要介绍了系统的开发平台,技术实现和部分运行结果三部分。

结论,总结了系统的设计和实现过程,分析了系统的优点和不足之处,并得出了自己的心得体会。

2系统开发工具以及相关介绍

2.1MFC技术

MFC,微软基础类,实际上是微软提供的,用于在C++环境下编写应用程序的一个框架和引擎,VC++是Windows下开发人员使用的专业C++SDK(SDK,专业软件开发平台),MFC就是挂在它之上的一个辅助软件开发包,MFC同VC++集成的VCL一样是一个非外挂式的软件包,类库,只不过MFC类是微软为VC++专配的。

MFC作为与VC++血肉相连的部分MFC同BC++集成的VCL一样是一个非外挂式的软件包,类库,只不过MFC类是微软为VC++专配的。

2.2Winsock概述

WindowsSockets规范以U.C.Berkeley大学BSDUNIX中流行的Socket接口为范例定义了一套MicosoftWindows下网络编程接口。

它不仅包含了人们所熟悉的BerkeleySocket风格的库函数;

也包含了一组针对Windows的扩展库函数,以使程序员能充分地利用Windows消息驱动机制进行编程。

WindowsSockets规范定义并记录了如何使用API与Internet协议族(IPS,通常我们指的是TCP/IP)连接,尤其要指出的是所有的WindowsSockets实现都支持流套接口和数据报套接口.应用程序调用WindowsSockets的API实现相互之间的通讯[2]。

WindowsSockets又利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作。

它们之间的关系如图1所示:

图1socket通信示意图

TCP/IP是供已连接因特网的计算机进行通信的通信协议。

TCP/IP是一个两层的程序。

高层为传输控制协议,它负责聚集信息或把文件拆分成更小的包。

这些包通过网络传送到接收端的TCP层,接收端的TCP层把包还原为原始文件。

低层是网际协议,它处理每个包的地址部分,使这些包正确的到达目的地。

网络上的网关计算机根据信息的地址来进行路由选择。

即使来自同一文件的分包路由也有可能不同,但最后会在目的地汇合。

TCP/IP使用客户端/服务器模式进行通信。

两个系统间的多重连接是这样确认并协调一致的:

原IP地址、目的IP地址、源端口、目的端口。

端口是一个软件结构,被客户程序或服务进程用来发送和接收信息。

服务进程通常使用一个固定的端口。

这些端口号是“广为人知的”,因为在建立与特定主机或服务的连接时,需要这些地址和目的地址进行通讯。

在此TCP/IP协议将起着实现聊天室的重要组成之一。

3系统分析

3.1功能描述

聊天系统主要由服务器和客户端两个部分组成

3.1.1服务器

(1)功能描述

服务器主要实现的三个功能:

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

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

服务器要把接受到的信息向除源端外的所有客户发送过去。

(2)实现分析

服务器端通过socket()系统调用创建一个Socket数组后(即设定了接受连接客户的最大数目),与指定的本地端口绑定bind(),就可以在端口进行侦听listen()。

如果有客户端连接请求,则在数组中选择一个空Socket,将客户端地址赋给这个Socket。

然后登录成功的客户就可以在服务器上聊天了。

客户端程序相对简单,只需要建立一个Socket与服务器端连接,成功后通过这个Socket来发送和接收数据就可以了[3]。

3.1.2客户端

客户端需要完成以下几个功能:

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

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

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

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

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

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

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

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

3.2非功能描述

聊天系统的非功能性需求如下:

(1)系统可靠性方面:

对于客户机发送的消息能够快速转发给对方,保证连接不的稳定正常运行,24小时内的掉线时间不超过5分钟

(2)系统可用性方面:

系统界面要求美观大方,操作简单易行。

(3)系统的有效性方面:

系统要求能够容纳50个客户端的同时的访问要求,在高峰时期要达到100个以

上的访问要求;

系统要有一定的并发请求处理;

对于服务器要求较高(内存:

2G

以上、硬盘:

160G以上、CPU:

双核)在设计和开发系统时要考虑到系统的可扩展性。

4系统设计

4.1系统关键技术

4.1.1WindowsSocket网络编程接口

本系统是以服务器提供服务端连接响应,使用者通过客户端程序登录到服务器,就可以与登录在同一服务器上的用户交谈,这是一个面向连接的通信过程。

因此,程序要在TCP/IP环境下,实现服务器端和客户端两部分程序。

VC++对网络编程的支持有socket支持,在TCP/IP网络通信环境下,Socket数据传输是一种特殊的I/O,它也相当于一种文件描述符,具有一个类似于打开文件的函数调用-socket()。

可以这样理解:

Socket实际上是一个通信端点,通过它,用户的Socket程序可以通过网络和其他的Socket应用程序通信[5]。

Socket存在于一个"

通信域"

(为描述一般的线程如何通过Socket进行通信而引入的一种抽象概念)里,并且与另一个域的Socket交换数据。

Socket有三类,本系统利用的是SOCK_STREAM(流式),提供面向连接的可靠的通信服务。

4.2系统设计

通过聊天系统的分析并结合现实情况,可以设计出整个系统的总体流程结构,如图2所示:

图2系统流程图

5系统实现

这部分是系统实现部分,主要包括开发环境及工具、技术实现和运行结果三大部分组成:

5.1开发平台

5.1.1开发环境

(1)动态链接库ws2_32.dll

ws2_32.dll是WindowsSockets应用程序接口,用于支持Internet和网络应用程序。

程序运行时会自动调用ws2_32.dll文件,ws2_32.dll是个动态链接库文件位于系统文件夹中。

Windows在查找动态链接库文件时会先在应用程序当前目录搜索,如果没有找到然后才会搜索Windows所在目录;

(2)winpcap驱动

Winpcap是windows平台下一个免费,公共的网络访问系统。

是为win32应用程序提供访问网络底层的能力。

其主要功能在于独立于主机协议(如TCP/IP)而发送和接收原始数据包[6]。

(3)开发工具:

VisualC++6.0

VC是Microsoft公司推出的目前使用极为广泛的基于Windows平台的C++可视化开发环境。

VC基于C,C++语言,主要由是MFC组成,是与系统联系非常紧密的编程工具,它兼有高级,和低级语言的双重性,功能强大,灵活,执行效率高,几乎可说VC在 

Windows平台无所不能。

5.1.2运行环境

(1)软件环境

操作系统:

windows2000/XP,Win7

(2)硬件环境如表1所示:

表1硬件环境表

硬件

最低要求

推荐

CPU

IntelPentium166MHz

P4或以上

内存

128M

512M或以上

硬盘

300M

500M以上

5.2技术实现

5.2.1服务器端

首先要开启服务器功能,编写相关代码,然后指定开启服务器功能的端口,在程序视图显示提示信息的函数,相关视图可自行创建。

创建服务器端Socket,类型为SOCK_STREAM,面向连接的通信,设置相关命令与选定的端口绑定。

WSAAsyncSelect将网络中的事件关联到窗口的消息函数中。

实现代码如下:

m_

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

当前位置:首页 > 小学教育 > 语文

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

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