计算机毕业设计专业定做 计算机毕业论文专业代写 网站地图 | 加入收藏 | 设为首页

您的位置:首页 > 计算机论文 > VC局域网信息发布程序的设计与实现论文

VC局域网信息发布程序的设计与实现论文

新闻来源:九九论文网 QQ:995502877  发表时间:2010-5-3 23:49:08  浏览次数:  责任编辑:原创
目   录
摘要   .........................................................3
英文摘要   ......................................................4
一、绪论   ......................................................5
(一) 背景介绍   ...........................................5
(二) 相关知识..............................................5
二、需求分析  ...................................................9
(一) 可行性分析:...........................................9
(二)系统综合要求: ........................................9
(三)系统数据要求: ........................................10
三、总体设计  ..................................................12
(一) 层次图 ...............................................12
(二) 系统构架图...........................................13
(三) IPO图 ...............................................14
四、详细设计  ..................................................16
(一)    服务器端设计方案  ...................................16
(二)    模块流程图    ........................................17
(三)    数据库设计...........................................20
(四) 共享数据结构设计.....................................20
五、关键代码分析  ...............................................22
(一) 编码规则 ...........................................22
(二) 多进程编程  ........................................22
(三) 多线程技术..........................................23
(四) 主要设计源代码介绍  …...............................23
六、测试   ......................................................31
(一) 测试的目标和方法   .................................31
(二) 软件测试情况   ....................................31
(三) 界面与功能测试情况.................................32
七、总结   ......................................................35
参考文献   ......................................................36

 
摘  要
 
本次毕业设计的题目是局域网信息发布程序的实现,是采用RedHat Linux 作为开发平台,以MySQL为数据载体,以VC语言为主要开发语言的一套包括发送消息及附件为主,并提供及时聊天功能的一个综合性软件。主要的功能是基于TCP/IP网络通信技术实现了面向连接的用户与服务器间点对点的通信传输功能,并且应用了多线程以及共享数据结构技术,使网络服务器具有了多用户数据转发的功能,进而解决了局域网多用户间的信息发送的问题。在客户端,用户通过注册/登陆机制进行身份验证并通过通信服务器转发信息以及附件。
对于一般采用TCP/IP协议的应用程序只实现了单用户与服务器间点对点的连接,而本文在VC6.0的环境下,运用了多线程以及共享数据结构技术,不仅实现了多用户与服务器间的连接,而且解决了多用户间信息交换问题。
 
 
 
关键词 Linux   MySQL  socket  多线程  共享数据结构  信息发送
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ABSTRACT
 
This graduate design is called ”Information of LAN transmission’s achieve”
 It is a compositive software including chat and file transfers which takes RedHat Linux 9.0 as the develop platform, MySQL as a data carrier and use VC as the main programme language. The function includes: according to the TCP/IP network communicated technique achieve face to connect user and server point to point data transfer. And it apply multi-thread and data share technique. It use network server have more users data transmit function. Resolve communication of more users of LAN. On client, the users use login server enter the personnal interface, make use of communication server transfer data and file.
    
About commonly TCP/IP protocol’s application only achieve connect to
one user and server . But in this article we use VC6.0, use multi-thread and share data technique not only achieve connect to more users and server but also more users’s communication.
 
 
 
 
 
 
 
 
 
KEY Words:     Linux   MySQL   Socket    Multi-thread 
Share data structure   Send message
 
 
 
 
 
 
 
 
 
 
 
 
一、 
(一)背景介绍
 
由于因特网的迅速流行,越来越多的应用程序具备了在网上与其它程序通信的能力。从WIN95开始微软把网络功能融进了它的操作系统,使得应用程序网络通信能力更为普及。因此,微软的TCP/IP协议也就成为网络应用程序基于的首选协议。
一般采用TCP/IP协议的应用程序只实现了单用户与服务器间点对点的连接,而我所选择的题目则是应用多线程及共享数据结构技术,不仅实现了多用户与服务器间的连接,而且解决了多用户间信息交换问题。所以说开发的这个软件应该是一个比较实用的,功能比较强大的软件。
它的主要功能是基于TCP/IP网络通信技术实现了面向连接的用户与服务器间点对点的通信传输功能,一套包括发送消息及附件为主,并提供及时聊天功能的一个综合性软件。
它的开发环境是以RedHat Linux作为开发平台,以MySQL为数据载体,以VC语言为主要开发语言的一个软件。在这次代码的编写中我们主要研究的是网络通信方面的知识[1]。
 
(二) 相关知识
 
1、 Linux的特性及其优点

Linux操作系统核心最早源于芬兰赫尔辛基大学一名学生Linus Torvalds的天才想法,后来经过众多世界顶尖的软件工程师的不断修改和完善,Linux得以在全球普及开来,在服务器及个人桌面领域得到越来越多的应用,在嵌入式开发方面更是具有其它操作系统无可比拟的优势,并以每年100%的用户递增数量显示了Linux强大的力量,成为UNIX世界的一朵奇葩。
Linux是一套免费的32位多用户多任务的操作系统,其稳定性、多任务能力与网络功能已是许多商业操作系统无法比拟的,Linux还有一项最大的特色在于源代码完全公开,在符合GNU GPL(General Public License)的原则下,任何人皆可自由取得、散布、甚至修改源代码。 Linux还具有以下特点:
1).采用阶层式目录结构,文件归类清楚、容易管理;
2).支持多种文件系统;
3).具备高度移植性;
4).可与其它的操作系统并存于同一台计算机上。
Linux的优点也有很多,如下:
1).低廉的附加费用;
2).根据您的需求灵活定制;
3).从许可证的限制中解脱;
4).稳定性;
5).高性能;
6).标准兼容性。
 
2  、 数据库(MySQL)及其特点
 
随着计算机技术的飞速发展,计算机用于管理的规模越来越大,应用越来越广泛,数据量急剧增长,传统的数据管理方式(人工管理、文件系统方式)已经远远不能满足人们的要求,数据库技术便应运而生,出现了统一管理数据的专门软件系统――数据库管理系统。数据库系统由于其数据结构化、共享性高、冗余度低、易扩充,数据独立性高等优点,在各个领域得到了广泛的应用[4]。
MySQL是一个真正的多用户、多线程的SQL数据库,是一个客户机/服务器结构的应用,它由一个服务器守护程序MySQL同的客户程序和库组成。MySQL的主要目标是快速、健壮和易用。
MySQL具有以下功能特点
l        可以同时处理几乎不限数量的用户;
l        处理多达50,000,000以上的记录;
l        命令执行速度快,也许是现今最快的;
l        用户名和口令独立于/etc/passwd。这便于CGI的使用;
l        使用核心线程的完全多线程支持,这意味着它能利用多cpu;
l        支持多种语言开发,例如C C++ JAVA PHP;
l        支持多字节类型,包括1 2 3 4 8字节长度的有符号、无符号整数;
l        全面支持SQL。
 
3、 VC简介
 
3.1、 VC的特性
 
虽然VC比较难学,尽管也是Visual的,但很多地方需要手工编写代码,但其开发后生成的程序质量比较高。VC编译后的速度较快,不需要庞大的运行时间库支持,软件发行也不是困难;而且底层调用手段较多,适合开发硬件操作多、速度要求高的场合,比如编写硬件驱动程序等等。
 
3.2、 VC++与网络编程
 
VC++对网络编程的支持有socket支持,WinInet支持,MAPI和ISAPI支持等。其中,Windows Sockets API是TCP/IP网络环境里,也是Internet上进行开发最为通用的API。在TCP/IP网络通信环境下,Socket数据传输是一种特殊的I/O,它也相当于一种文件描述符,具有一个类似于打开文件的函数调用-socket()。可以这样理解:Socket实际上是一个通信端点,通过它,用户的Socket程序可以通过网络和其他的Socket应用程序通信。Socket存在于一个"通信域"里,并且与另一个域的Socket交换数据。Socket有三类。第一种是SOCK_STREAM(流式),提供面向连接的可靠的通信服务,比如telnet,http。第二种是SOCK_DGRAM(数据报),提供无连接不可靠的通信,比如UDP。第三种是SOCK_RAW(原始),主要用于协议的开发和测试,支持通信底层操作[3]。
 
4、 数据通信的种类
 
4.1、TCP/IP(传输控制协议)
 
它是由Socket类实现,并且它提供的是一种可靠的、面向连接的数据传输方式,不管是对单个的数据报还是对数据包,流式套接字都提供了一种流式数据传输。TCP接收传输协议数据包并把它们传递到表示层。并把信息分解成数据包(datagrams) 并在接收端重新组装起来。它还对丢失的数据包进行重新传输的请求[5]。
 
4.2、UDP(用户数据报协议)
 
由DatagramSocket类实现数据报套接字,它提供的是一种不可靠的非连接的数据包通信方式,不可靠的意思是发送一个数据包不能保证被接收方接收,也不保证数据包按照发送顺序到达接收方,虽然它使你的应用程序更有效率,但只有在你的应用程序并不是立即交流大量数据并且不需要组装大量的数据报而完成一条消息的时候才使用[5]。
基于上面两种方法的比较,我选择的是TCP/IP协议作为这次开发的协议,用他来控制传输数据。
 
5、  小组分工
在《局域网信息发布程序的设计与实现》中本人负责服务器部分的代码设计与编写。
 
 
 
 
 
 
 
 
 
 
 
 
 

 
二、需求分析
 
(一) 可行性分析
 
可行性分析的目的是为了用最小代价在最短时间内确定问题是否能够解决。可行性分析的实质就是要进行一次压缩简化系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程[1]。
(1)技术可行性:这个软件通用,可行。
(2)经济可行性:这个软件的经济效益会远大于开发成本,可行。
(3)操作可行性:Linux系统/Windows系统和MySql为大家所熟知,比较易于操作,这个软件也易于使用,可行。
 
(二) 系统综合要求
 
需求分析的基本任务是准确的回答“系统必须做什么?”[1]这个问题。这一阶段是对系统认识最为全面、准确、清晰、得体的一个比较关键的时期。
需求分析的结果是系统开发的基础,关系到工程的成败和软件产品的质量。因此,必须用行之有效的方法对软件需求进行严格的审查验证,为下一步的总体设计打好基础。
 
2.1、系统功能要求
 
需求分析的基本任务是准确的回答“系统必须做什么?” 功能:
1)  注册会员于登录服务器,并把相关会员信息写入数据库中,在登陆时要进行身份验证。
2)  建立多用户间的通信连接。
3)  用户间消息和文件的传送和接收。
4)  附件与文字同时发送。
 
2.2、 系统性能要求
时间性能要求:在实际应用中可能需要多用户间信息互发的问题,客户端的大量频繁的访问,服务器响应时间应该尽可能缩短,对于有特殊需求的应用,还要求达到实时响应。
存储性能要求:根据应用中的实际情况配置适当容量的存储设备。
稳定性安全性要求:要求软件尽可能的稳定,对于一般的应用系统,对安全
性要求不高,对于特殊的应用,还需要在安全性方面加以保证,所以要相应提高服务器端的配置。
 
2.3、  系统运行要求
 
服务器端: Linux系统和MySQL服务器。Server:用于接收/转发数据,连接数据库及应用程序。
客户端:  多个PC机,通信用,作为数据发生器。
 
2.4、  将来可能提出的要求
 
在实际应用中,用户的要求随时可能发生变化,如需要更改数据库信息,改变通信参数,增加访问量以及需要提高系统的性能要求等等。为了减少软件改写的难度,提高软件的可维护性,在设计时要考虑到以上的种种可能性,提高程序的可读性和易扩充性。
 
(三)系统数据要求
 
数据流图是描绘系统的逻辑模型,描绘信息在系统中流动和处理的情况。数据流图是逻辑系统的图形表示,非常容易理解,所以是极好的通信工具,同时,设计数据流图只需要考虑系统必须完成的基本逻辑功能,完全不需要考虑如何具体地实现这些功能,所以它也是软件设计的很好的出发点[1]。
发表评论】【加入收藏】【返回顶部】【打印】【关闭
相关评论
发表评论
 您的姓名:     验证码:
 评论内容:  
    最多200字。 当前字数

最新新闻

热点新闻