基于VC的局域网通信软件的设计与实现开题报告

395 篇文章 17 订阅
395 篇文章 17 订阅

一、本课题研究的主要内容、目的和意义

研究的主要内容:

1、本课题研究了TCP/IP网络上的应用程序的开发。TCP/IP是人们在网络建设中边实践边开发研究的一个产物,它不是由某一国际标准化组织机构提出的标准协议,但它已经成了人们公认的,在Internet上使用的事实上的工业标准协议。TCP/IP的体系结构分为四层,这四层由高到低分别是:应用层、传输层、网络层和链路层。其中每一层完成不同的通信功能。

TCP为两台主机提供高可靠性的数据通信,当有数据要发送时,它对应用程序送来的数据进行分片,以适合网络层进行传输;当接收到网络层传来的分组时,它对收到的分组要进行确认;它还要对丢失的分组设置超时重发等。由于TCP提供了高可靠性的端到端通信,因此应用层可以忽略所有的这些细节,以简化应用程序的设计。

2、课题研究了基于消息的异步套接字技术。Windows套接字在两种模式下执行I/O操作:阻塞模式和非阻塞模式。在很多情况下,阻塞方式会影响应用程序的性能,所以我们大多数采用非阻塞方式实现网络应用程序。

Windows Sockets为了支持Windows消息驱动机制,使应用程序开发者能够方便地处理网络通信,它对网络事件采用了基于消息的异步存取策略。Winsock通过异步选择函数WSAAsyncSelect实现非阻塞通信。方法是由该函数对指定窗口中的某个Socket对象指定某种网络事件。当被指定的网络事件发生时,Winsock将发送由程序实现约定的消息到指定的消息接收窗口。窗口消息循环接收到该消息后,就可以做相应的处理。

3、课题研究了WINDOWS的SOCKETS编程接口。Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。

选定WINDOWS平台开发网络通信程序,可以选择WINDOWS的SOCKETS编程接口,Windows Sockets是一套开放的、支持多种协议的Windows下的网络编程接口。现在的Winsock已经基本上实现了与协议无关,我们可以使用Winsock来调用多种协议的功能,但较常使用的是TCP/IP协议。Windows sockets无疑是我们进行网络编程的利器。所有的Windows Sockets实现都支持流套接口和数据报套接口。应用程序调用Windows Sockets的API实现相互之间的通讯。Windows Sockets又利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作。

本课题实际上研究的是基于TCP(面向连接)的Socket网络编程。在TCP/IP网络应用中,通信的两个进程间相互作用的主要模式是客户机/服务器模式(client/server),即客户向服务器提出请求,服务器接收到请求后,提供相应的服务。

基于TCP(面向连接)的Socket编程的服务器端程序流程如下:

  1. 创建套接字(socket);
  2. 将套接字绑定到一个本地地址和端口上(bind);
  3. 将套接字设为监听模式,准备接收客户请求(listen);
  4. 等待客户请求到来;当请求到来后,接受连接请求,返回一个心的对应于此次连接的套接字(accept);
  5. 用返回的套接字和客户端进行通信(send/recv);
  6. 返回,等待另一客户请求;
  7. 关闭套接字。

基于TCP(面向连接)的Socket编程的客户端程序流程如下:

  1. 创建套接字(socket);
  2. 向服务器发出连接请求(connect);
  3. 和服务器端进行通信(send/recv);
  4. 关闭套接字。

在服务器端,当调用accept函数时,程序就会等待,等待客户端调用connect函数发出连接请求,然后服务器端接受该请求,于是双方就建立了连接。之后,服务器端和客户端就可以利用send和recv函数进行通信了。

选题目的和意义:

       随着互联网技术的迅猛发展,网络给人们带来很多便利,比如聊天服务。聊天工具昨晚互联网中运用最为广泛的通信工具之一,如今都已被广大网民接受。

       基于局域网的即时通信工具,实际上是互联网即时通信工具的一个小规模版本。在局域网内,因为局域网的网络结构本身比广域网要简单,很多功能的实现跟广域网相比会更加简单。但是通过研究这个项目可以借此理解网络协议,以及网络通信工具的实现原理,检查自己综合运用以前所学知识的能力,所以极具研究价值。

本文主要研究的是一个具有高度实用性的聊天程序软件的设计原理,思路和过程。通过该网络程序的编制和实践,对自己所学习的知识进行一次综合和提高,有更深层次的理解和掌握,在这过程中激发自己学习的潜力,提高软件开发的能力,加深对网络协议和windows环境下网络编程的理解和掌握。

二、文献综述(国内外相关研究现况和发展趋向)

随着全球信息化进程的不断发展,网络也在飞速发展。互联网的迅速发展和波及范围的快速膨胀不仅改变了人们的意识形态,更影响着人们的生活方式,网络元素在不知不觉中渗透到生活的每一个角落。在此过程中,网络人际交往也成为现代社会人际交往的一种最新、最时尚、最便捷、最多元化的方式,即时通讯软件也成为网民最常用的网络工具。[1]

广域网上的聊天工具开发技术已经比较成熟,比较知名的如:国外的MSNICQ、雅虎通等等,国内的QQ、新浪UC、飞信、阿里旺旺等等。这些聊天工具统统都支持广域网上的即时通讯。尽管都是即时通讯工具,都实现聊天功能,以及表情支持等主要功能,但是也各有各的特色。比如ICQ的巨大客户群、MSN的个性化表情、雅虎通的易操作性等。还有如QQ客户端整合服务正在为用户带来极大的便利性和全新的操作感受,既秉承了QQ客户端一贯的使用风格,又有效地防止了用户的审美疲劳。而阿里旺旺借助了淘宝网个人在线交易平台的快速发展,淘宝网的用户无论买东西还是卖东西都能通过阿里旺旺进行更为及时、方便的沟通,从而为用户间的在线交易提供了更好的保障。这些即时通讯工具都是构建于TCP或者UDP协议的软件产品。

基于局域网的即时通信工具,实际上是互联网即时通信工具的一个小规模版本,也是基于TCP或者UDP协议开发的软件产品。近年来,在内部局域网下,因为网络连接速度很快,可以高效、快速地处理各种事务,很多企业、学校等都使用内部局域网来进行工作。信息的交换、人际的沟通与交流建立在局域网聊天工具平台上,使得信息对于外部网络是私密的,也就提高了企业信息的安全性。比较知名的局域网聊天工具,如:飞鸽传书、飞秋等等。这些工具都支持局域网上的即时通讯。飞鸽传书是一款企业即时通讯软件,基于TCP/IP模式,适合企业使用。 企业员工可在企业内部或外部通过飞鸽传书进行通讯,支持消息发送,文件传输,语音对话等。统一的用户管理,通讯记录保存在服务器,查询方便。为企业提供安全,稳定的即时通讯解决方案。由日本的山田先生开发于90年代。该软件曾经风靡一时,成为文件传输的代名词。飞鸽传书提供即时通讯,适合用于局域网内甚至广域网间进行实时通信和文档共享。

本课题主要从局域网的特性角度出发,在对聊天用户功能需求分析的基础上,采用Visual C++语言,结合轻型数据库SQLite,在VS2010开发环境下使用MFC开发一个适合局域网的聊天工具。系统采用客户机/服务器(C/S)体系结构,设计分为服务器端和客户端,采用多线程并行处理,并进行了人性化的界面设计。系统除了能完成聊天的基本功能,还增加了公告、私聊、禁言、信息过滤、密码加密以及聊天时用户使用的字体、字体大小、颜色、表情等功能,如果服务器中断了服务,则会提示客户端用户退出。

由于本课题是开发网络应用程序,所以应考虑以下两点,这两点也是本次课题的特色和重点之处。1、采用线程同步和基于异步选择机制大大提高网络应用程序的效率。2、因为网络状况瞬息万变,所以应该对网络操作的相关函数的返回值进行判断,如果发生错误就要进行相应处理。

三、拟采取的研究方法(方案、技术路线等)和可行性论证

研究方案

项目使用主流的客户机/服务器(C/S)体系结构开发完成。C/S结构是这样的一种结构:它包括一个客户机(或前端),一个服务器(或称后端),客户机的作用是访问和处理远程服务器上的数据,服务器的作用是接收和处理客户机的数据请求。有时,可能有多个客户向同一个服务器同时请求服务,这就需要服务器决定怎样处理这些请求。Client/Server结构是当前数据库应用程序中极为流行的一种方式。尤其是网络技术的发展,使得当前很多系统都采用这种方式进行构造,其最大的优点是将计算机工作任务分别由客户端和服务器端来共同完成,这样有利于充分合理的利用系统资源。另外它的服务器端还可以将信息集中起来,任何客户机都可以通过访问服务器而获得所需的信息。Client/Server模型最终可归结为一种“请求/应答”关系。一个请求总是首先被客户发出,然后服务器总是被动地接收请求,返回客户需要的结果。在客户发出一个请求之前,服务进程一直处于休眠状态。一个客户提出请求后,服务进程被“唤醒”并且为客户提供服务,对客户的请求做出所需要的应答。

可行性研究

1、经济可行性

由于本课题属于大学毕业设计,采用Microsoft Visual Studio 2010开发软件在Windows平台上开发完成,属于纯软件开发,不存在开发资金,仅需处理器2.0 GHz左右、内存1.00GB以上、操作系统Windows XP(或Windows 7)电脑一台。

2、 技术可行性

通过分析发现,本软件实际上是在Windows平台上用Visual C++集成开发环境基于MFC开发框架和CSocket类实现网络编程。本人长期以来在Visual C++集成开发环下基于MFC框架做一些小项目,对开发环境、程序框架都有一定的了解。本人也曾使用CSocket类有一定的项目开发经验。因此,本人完全可以在要求时间内完成该软件的开发。

四、预期结果(或预计成果)

  1. 系统采用客户机/服务器(C/S)体系结构,通过使用TCP/IP协议技术、Windows Socket技术开发。使用基于消息的异步套接字技术、配合使用多线程技术,大大提高网络应用程序的性能。
  2. 服务器端实现的功能有登录管理、注册管理、密码管理、用户管理、公告管理、聊天管理、系统公告、踢出用户、禁言、文字过滤、禁止注册、私聊、聊天字体大小和颜色以及图片发送等功能。客户端实现的功能有:登录、注册、密码修改、用户公告、私聊等。

3、根据本软件撰写一篇本科毕业论文。

五、研究进度安排

第 1 周  2014.01.04-2014.01.10  搜集相关资料进行选题;

第 2 周  2014.02.24-2014.03.01  课题调研;

第 3 周  2014.03.03-2014.03.09  搭建熟悉Visual Studio 2010开发环境;

第 4 周  2014.03.10-2014.03.16  初步完成局域网聊天软件的需求分析设计;

第 5 周  2014.03.17-2014.03.23  对系统进行概要设计;

第 6 周  2014.03.24-2014.03.30  完成概要设计,并撰写开题报告;

第 7 周  2014.03.31-2014.04.06  对系统设计进行详细设计,进入实现阶段;

第 8 周  2014.04.07-2014.04.13  设计实现系统各个功能模块进行中期答辩;

第 9 周  2014.04.14-2014.04.20  实现登录、注册、公告模块、私聊等功能;

第10周  2014.04.21-2014.04.27  完善对网络错误的处理和界面美化功能;

第11周  2014.04.28-2014.05.04  对系统进行测试并撰写毕业论文;

第12周  2014.05.05-2014.05.11  根据指导老师审查论文意见进行修改完善;

第13周  2014.05.12-2014.05.18  完成毕业论文并提交其它文档;

第14周  2014.05.19-2014.05.25  毕业论文外审并进行毕业答辩;

第15周  2014.05.26-2014.06.02   论文完善。

六、主要参考文献

[1]陈志泊,张海燕,孟伟.Visaul C++ 程序设计 [M].北京:中国铁道出版社,2008.8

[2]钱能.C++程序设计教程(修订版)[M].北京:清华大学出版社,2009.7

[3]郭宁.软件工程实用教程(第二版)[M].北京:人民邮电出版社,2011.8

[4]徐宝文,李志.C程序设计语言(第二版·新版)[M].北京:机械工业出版社,2004.1

[5] 施炜.Windows Sockets 规范和应用—Windows网络编程接口 [M].1996

[6]Anthony Jones and Jim Ohlumd,TCP/IP详解 卷一:协议(英文版).机械工业出版社,2003

[7] 王罡.基于Windows的TCP/IP编程 [M].清华大学出版社,2002

[8] 蒋东兴.Windows Sockets网络程序设计大全 [M].清华大学出版社,1999

[9] 萨师煊.数据库系统概论 [M].高等教育出版社,2002

[10]雷斌,杨建华,黄超,何斌.VISUAL C++ 6.0网络编程技术 [M].人民邮电出版社,2000

[11]Jeff Prosise.MFC Windows程序设计(第2版),清华大学出版社,1999

[12]庞怡,许洪光,姜媛.即时通讯工具现状及发展趋势分析.科技情报开发与经济,2006

[13]孙鑫,余安萍.VC++深入详解 [M].电子工业出版社,2006.6

[14]梁伟.Visual C++网络编程经典案例详解 [M].清华大学出版社,2010

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

[16]宋坤,锐宁,李伟明.MFC程序开发参考大全 [M].人民邮电出版社,2007

[17]葛子昂,周靖,廖敏.Windows核心编程 [M].清华大学出版社,2008.9

[18]明日科技.Visual C++ 开发范例宝典 [M].人民邮电出版社,2007

[19]尹成,颜成钢.Visual C++ 2010开发权威指南 [M].人民邮电出版社,2010

[20]曹衍龙,刘海英.Visual C++网络通信编程使用案例精选(第二版)[M].人民邮电出版社,2006

七、审核意见

指导教师对开题的意见:

  1. 该学生在开题报告中对选题所涉及的技术和国内外研究现状了解很认真,也很真实;
  2. 该学生在开题报告 对研究内容、目的和意义、研究方向很明确;
  3. 该学生在开题报告中研究的方法及措施是可行的;
  4. 该学生在开题报告中研究工作的步骤,进度安排也合理,时间安排与本人下发的任务书规定的时间安排相呼应;
  5. 同意开题。

指导教师签字:

学院审核意见:

同意开题

审核人签字:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值