文件传输与聊天系统设计论文
- 格式:doc
- 大小:301.50 KB
- 文档页数:42
一种高效文件传输系统的设计与实现【摘要】本文就企业集约化管理的需求,信息化集成平台的应用推广,使用集成平台处理业务、数据、信息已经渗透到企业安全、生产各个环节。
数据、文件之间共享被越来越多的集成应用系统所使用,如实时监测数据文本、图文图纸、资料文件等。
在企业信息化集成平台的使用过程中,文件传输的效率起着有至关重要的作用。
系统的实现,为公司综合调度数据集成、企业信息化文件共享提供了有效的基础支撑。
【关键词】传输系统;集成信息化;校验码;事件;监听机制引言目前,随着企业集约化管理的需求,使用集成平台处理业务、数据、信息已经渗透到企业安全、生产各个环节。
数据、文件之间共享被越来越多的集成应用系统所使用,如实时监测数据文本、图文图纸、资料文件等,需要构建一套企业集成类信息化平台,对作业现场各子系统数据进行集成与应用,达到实时监视与集中调度的目标。
在某些应用场景下,数据在传输过程中需要考虑上传的及时性与数据的连续性,以保证对现场环境的实时监视,以保证对预警和故障的及时处理;同时在应用分析过程中,需要对现场数据的连续性分析,以保证数据的完整性和数据分析结果的准确性。
常规的文件传输系统更适应于下行多于上行传输的场景。
而在企业的信息化集成平台上,客户端对上传文件的需求更为强烈。
客户端存在有大量的文件需要上传至服务器,以实现数据处理、解析与存储备份及文件归档存储与备份等。
常规的文件传输系统有以下缺点:一、上行与下行不对等,更注重下行传输;二、传输权限不易控制,权限认证手段种类繁多,步骤繁琐,例如FTP模式;三、对于大量小文件和频繁传输的场景,文件传输效率低下,多数情况下需要验证请求再传输。
1.实现目标本文针对现有企业生产过程实时监测与应用平台中,基层单位小文件,多客户端,安全高效频繁传输的应用需求,设计一种基于TCP协议的远程高效文件传输系统,达到数据及时、高效、稳定传输,主要实现基于文件夹、文件创建事件的监听触发上传机制;一次握手,终身传输机制;自定义分发机制,满足多种业务应用;分块多线程传输机制提高传输效率;分级故障诊断等系统功能,同时该系统的核心技术亦可作为企业网盘的核心技术。
《基于ANDROID的蓝牙多点文件传输系统》篇一一、引言随着移动互联网的快速发展和智能设备的普及,Android系统因其开放性和易用性,已成为全球最受欢迎的移动操作系统之一。
蓝牙技术作为无线通信的重要手段,广泛应用于数据传输、设备连接等领域。
本文旨在设计并实现一个基于Android的蓝牙多点文件传输系统,以满足用户在不同设备间快速、高效地传输文件的需求。
二、系统需求分析1. 功能性需求系统需具备文件选择、文件传输、传输进度显示、传输完成通知等基本功能。
同时,要支持多点蓝牙传输,即多个Android 设备间可同时进行文件传输。
2. 性能需求系统需保证文件传输的稳定性和速度,支持大文件传输,并具备较低的功耗和内存占用。
3. 用户界面需求系统界面需简洁明了,操作便捷,提供友好的用户交互体验。
三、系统设计1. 技术架构系统采用Android开发平台,使用Java或Kotlin编程语言进行开发。
采用蓝牙低功耗(BLE)技术实现多点传输。
2. 模块设计(1)文件选择模块:用户通过系统界面选择要传输的文件。
(2)蓝牙连接模块:系统自动搜索附近的蓝牙设备,建立蓝牙连接。
(3)文件传输模块:将选定的文件通过蓝牙进行传输。
(4)进度与通知模块:显示文件传输进度,并在传输完成后向用户发送通知。
3. 界面设计系统界面包括文件选择界面、蓝牙设备搜索界面、传输进度显示界面等。
界面设计需遵循Android设计规范,提供良好的用户体验。
四、系统实现1. 文件选择模块实现用户通过系统界面进入文件选择模块,可选择要传输的文件。
系统支持多选和单选,并支持各种常见文件格式。
2. 蓝牙连接模块实现系统自动搜索附近的蓝牙设备,并将搜索结果展示给用户。
用户选择要连接的设备后,系统自动建立蓝牙连接。
3. 文件传输模块实现文件传输模块采用蓝牙低功耗技术进行文件传输。
在传输过程中,系统会显示传输进度和预计剩余时间,以便用户了解传输情况。
4. 进度与通知模块实现当文件传输完成后,系统会自动向用户发送通知,并显示传输结果。
网络文件传输系统的设计与实现作者指导老师摘要:在科学技术飞速发展的今天,Internet已经和人们的日常生活息息相关,无论是工作,学习还是娱乐,都离不开网络。
比如有时候需要进行文件的传输,虽然现在的许多网络文件传输工具能基本满足人们对文件传输质量的要求,但是它们往往都存在安全性,工作效率低等问题。
本课程设计的文件传输系统是在Windows操作系统下,Visual C + + 6.0环境下借用WinSock控件实现的,是基于TCP/IP协议的C/S模式,在服务器和客户端分别以socket为中心进行编程,客户端和服务器端的界面分别是由文件发送模块和文件接收模块组成。
客户端先调用connect()与服务器建立连接,然后用send()发送数据;服务器端先调用listen()侦听客户端的连接请求,然后调用accept()对连接请求进行响应,如果需要接收数据,则会调用receive()接收。
本文件传输系统成功的实现了服务器和客户端的文件传输,不论是较小范围内的局域网还是远程网,而且还可以传输多种格式的文件,如word,视频,图像等。
相比其它文件传输工具而言,本系统有很多的优点。
首先,界面简单,易于操作;其次,传输较大的文件时,不需要花费很长时间。
关键词:文件传输;WinSock ; socket编程; C/S结构目录1 绪论 (3)1.1选题背景 (3)1.2选题意义 (3)2开发环境及相关技术简介 (4)2.1开发环境Visual C++ 6.0介绍 (4)2.2基于vc的socket网络编程的基本原理 (4)2.2.1 socket的基本概念 (4)2.2.2Winsock网络编程原理 (5)2.3 TCP/IP协议简介 (5)2.5 C/S结构 (6)2.5.1 C/S结构的概念 (6)2.5.2 C/S结构的工作模式 (6)2.5.3 C/S结构的优点 (6)3 网络文件传输系统的设计 (6)3.1服务器端和客户端界面介绍 (7)3.1.1服务器界面介绍 (7)3.1.2客户端界面介绍 (7)3.2服务器端,客户端程序分析 (8)3.2.1服务器端分析 (8)3.2.2客户端分析 (12)4实现 (16)4.1系统运行环境 (16)4.2文件传输系统的测试 (16)4.2.1实验一:局域网内文件传输 (16)4.2.2实验二:远程网络上文件传输 (18)4.2.3实验三:较大文件的传输 (20)4.2.4实验四:不同格式文件的传输 (20)4.3该文件传输系统的不足 (21)5结论 (21)致谢 (22)参考文献 (23)1 绪论1.1选题背景21世纪被称为信息时代,因为计算机技术的迅猛发展,给人们的日常生活以及工作,都带来翻天覆地的变化。
基于局域网的文件传输系统的设计与实现在当今数字化的时代,文件传输成为了日常工作和生活中不可或缺的一部分。
无论是在企业内部的团队协作,还是学校的教学活动,或者是家庭中的多媒体共享,都需要高效、稳定且安全的文件传输方式。
基于局域网的文件传输系统因其在特定范围内的高速传输、较低的成本以及较高的安全性等优势,受到了广泛的关注和应用。
一、系统需求分析在设计基于局域网的文件传输系统之前,首先需要明确系统的需求。
这包括确定系统的用户群体、功能需求、性能需求以及安全性需求等方面。
对于用户群体,可能涵盖企业员工、学校师生、家庭用户等。
不同的用户群体对系统的使用场景和需求会有所差异。
例如,企业员工可能更关注文件传输的稳定性和安全性,以及与企业现有系统的兼容性;学校师生可能更注重文件传输的便捷性和支持多种文件格式;家庭用户则可能更关心系统的易用性和多媒体文件的传输速度。
功能需求方面,系统应具备文件上传、下载、删除、重命名、文件夹创建等基本操作功能。
同时,还应支持文件的断点续传,以应对网络不稳定或传输中断的情况。
此外,文件搜索、分类管理等功能也能提高用户的使用体验。
性能需求主要包括传输速度、响应时间和系统的稳定性。
在局域网环境下,应尽可能实现高速的文件传输,减少用户的等待时间。
同时,系统要能够稳定运行,避免出现频繁的故障或错误。
安全性需求是至关重要的。
系统需要对用户进行身份验证和权限管理,确保只有授权用户能够访问和操作相应的文件。
此外,对传输过程中的文件进行加密,以防止文件内容被窃取或篡改。
二、系统设计(一)总体架构设计基于局域网的文件传输系统通常采用客户端服务器(C/S)架构。
服务器端负责管理文件存储、用户信息以及处理客户端的请求。
客户端则提供用户界面,用于与服务器进行交互和执行文件传输操作。
(二)模块设计1、用户认证模块用于验证用户的身份信息,确保只有合法用户能够登录系统。
可以采用用户名和密码、数字证书等方式进行认证。
摘要从实际工程应用角度出发,以计算机网络原理为指导,结合当前网络中的一些常用技术,编程实现基于winsock的网络聊天工具,该聊天工具具有文本聊天、语音聊天功能。
该论文主要对当今聊天软件的发展情况、与该聊天软件相关的各种技术以及该聊天工具的实现做了一个详细的阐述:聊天工具的开发主要用到了网络通信技术、语音的采集、压缩、传输、解压缩以及回放等技术;该聊天软件基于winsock通信,在此基础上,实现点对点聊天、语音聊天的传输;由于系统采用c/s结构,客户端与客户端以及客户端与服务器端需要传送一些控制消息,因此系统需要自定义一些消息类型,这是该聊天工具的又一大关键之处;语音聊天作为一个独立的模块,镶嵌在点对点的聊天中,语音聊天的关键之处在于语音的采集,压缩,发送,解压缩,回放上.关键词:网络通信;文本聊天;语音聊天;ABSTRACTIn the opinion of practical engineering and guided by computer network principal and taking some common network technicals, I take the software for chatting tool based on Winsock2.0 into practical.The software’s functions include point to point private chat、sound chat. This article is main particular expatiate about the development of today chatting software、the technicals of chatting software and the designing, programming of the software for chatting tool: the software is need that transport control information between client and client, client and server because of the system’s C/S structure. So it is another key point that the software defines many types of information itself;sound chatting is enchased in the pointing to pointing chatting as an independent module. Gathering, compressing, transporting, decompressing and playing sound information are the key technical of the sound chatting.Key words:network communication;chatting;sound chatting目录第1章绪论 (1)1.1项目开发的背景 (1)1.2项目开发的主要内容 (2)1.3项目开发的意义 (4)1.4项目开发的过程 (5)第2章需求分析 (7)2.1编写目的................................................................ 错误!未定义书签。
基于手机短信平台聊天程序的设计与实现的论文计算机理论论文摘要目前,大多数学校的教材科的教材管理工作包括教材信息、教材征订、教材审核、教材采购、教材出入库等,但若这些工作还停留在纸质的基础上,会浪费许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。
本系统主要完成了一个网上教材管理系统,其主要实现学生、教师、教材科的订书,学生、教师的领书功能,教材零售,因书的质量问题换书,报损处理。
对订书的情况做统计,为师生提供各种条件的教材信息查询等功能。
本系统开发平台选用visual studio 2005,后台数据库为sql sever 2005 express。
本系统适用于各类型学校的教材科的库存管理工作,可以大大的提高了教材科工作的效率,减少失误。
本文将对该系统的设计开发过程和具体功能做详细的介绍。
关键词:教材管理;教材领取;库存管理;;b/s需求分析与总体设计方案3.1 系统需求3.1.1 用户角色需求根据习惯上教材科的操作方式,整个系统应该有三种用户角色,即教材科人员,普通学生教师和系统管理员。
教材科人员处理订书领书操作,而不能进入到系统管理的模块中;学生教师可以查询教材信息,不能进入其它任何模块;系统管理员在后台对系统进行用户管理,教材信息管理,并展开系统的正常运行维护工作,但不能进入教材科人员操作模块。
除普通的学生教师等查询用户外,每个角色操作都通过密码验证和用户类型选择后登录。
通过系统管理员才可以修改密码。
工作完成后,通过各自专门的出口退出登录状态。
3.1.2 功能需求系统功能主要包括订书处理、领书处理、特殊处理、系统信息管理四个部分。
以下按照不同的功能处理对具体功能进行描述:一、订书处理:教材科人员通过登录页面登录成功后,可以通过菜单选择为学生、老师、或者教材科订书,首先选择需要定的教材,输入教材使用的学年度,如果为学生订书需要选择系和班级,填入需要订购的数量,如果是教师订书需要填写教师名字,选择确定,订书的过程就完成了。
网络传输系统设计论文(最终五篇)第一篇:网络传输系统设计论文1网络结构设计1.1网络结构总体方案网络结构是整个系统的基础,网络结构的设计直接关系到整个网络的传输质量、业务拓展及运营服务质量。
目前,网络结构的设计已从电缆向光纤,从模拟向数字化、宽带化、智能化趋势发展。
网络拓扑结构主要分星形网、树形网及环形网,一个网络一般由多种网络结构组合而成,为达到较高的可靠性拟采用环形+星型网络拓扑结构,在主干段以及配线段用光传输系统实现光纤到楼,再建同轴电缆和双绞线重叠网作为用户引入。
重叠网在光信号通路上通过共缆分纤方式将电视与数据业务物理分开形成以CATV为基础的重叠式综合业务网络。
整个网络拓扑图如图1所示,具体方案为:在小区综合楼内设置一分前端,并入会泽县城域骨干环网,具有自愈传输功能;从分前端到各个光节点采用一级星形结构,尽量延伸光传输距离,使光信号几乎送至用户;从光节点至用户电缆(同轴电缆或双绞线)采用星形无源结构,传输距离不超过100m,最大限度保证信号传输质量。
1.2分前端机房的设置因要接入城区自愈环中,故机房应配备具有二选一光接收并且具有自动切换功能的光接收机和支持冗余环网拓扑结构的数据传输设备,从而实现来自顺方向及逆方向上信号的冗余。
环网光缆采用48芯光缆,以满足今后多业务需求。
根据实地情况,机房设于小区中较集中的综合楼内,同时考虑到今后这一区域的发展,在路口设一交接箱,以满足今后小区处用户的接入。
2分配光缆网路由规划(1)光网络结构:如前所述,分前端后采用一级星形光网络拓扑结构。
(2)光节点芯数:考虑到下一步互动电视及今后其它数据业务的开展,每个光节点设计8芯(一芯下行、一芯上行、两芯数据、四芯备用)。
(3)光节点数:依据一步到位、分步实施、逐步发展的方针,同时根据小区实际情况,为满足星形无源电缆网的要求,尽可能延长光网络范围,以达到高质量传输、易维护的标准,小区内共设光节点38个。
(4)由于全部光缆为地沟敷设,且距离相对较短,考虑到降低施工难度,同时又能达到最高的网络传输标准,所有光节点均用8芯光缆直接铺设至机房。
摘要作为计算机网络应用之一的聊天工具,受到了用户的普遍爱好,它把人们带进了一个虚拟的网络世界,大大地加深了人们之间的联系。
从单一的文本聊天,到语音聊天以及到现在的图像、视频聊天、及时短信的发送和在线游戏等功能的开发,已经大大的拓展了聊天工具的概念,它将会作为未来人们通过因特网相互联系和娱乐的主要平台。
从实际工程应用角度出发,以计算机网络原理为指导,结合当前网络中的一些常用技术,本系统实现了一个网络聊天工具,该聊天工具具有聊天室聊天、广播聊天以及二人私聊等功能。
本论文主要对该聊天软件相关的各种技术以及该聊天工具的实现做了一个详细的阐述:1、该聊天工具的开发主要使用了visual c++等开发工具。
2、该聊天工具可在Win9x/Me/NT/2000/XP等环境下运行。
3、该系统分为登录子系统、底层通信子系统、聊天子系统、服务器管理子系统等几个模块.4、该聊天工具任何一端都可以作为服务器,也可以是客户端。
对于一个已创建好的服务器,在没有连入因特网的局域网内也可以相互通信。
5、该聊天软件基于WINSOCK实现了一对一聊天、一对多聊天。
6、该聊天工具用到了多线程的设计,因此线程之间的同步是一大关键之处。
7、由于客户端与客户端以及客户端与服务器端需要传送一些控制消息,因此系统需要自定义一些消息类型,这是该聊天工具的又一大关键之处。
关键词:Winsock网络通信聊天一对一通信visual c++6.0ABSTRACTThe chatting tool, which is one of the applications of the computer network, becomes the favorite of major users, which brings users into a virtual network world and greatly adds up the relations of users. From former single text chatting, to sound chatting, and the development of the image, video chatting, transporting note in time and gaming on net, these has greatly adds up the conception of the chatting tools, which will be the main flat roof of user’s relating and entertainment by internet.In the opinion of practical engineering and guided by computer network principal and taking some common network technical. The software’s functions include broadcasted chat、point to point private chat. This article is main particular expatiate about the development of today chatting software、the technical of chatting software and the designing, programming of the software for chatting tool: 1、The development of the chatting tool mainly takes advantages of the visual c++.2、This software may in Win9x/Me/NT/2000/Under the XP environment moves.3、This system divides into registers the subsystem, the first floor correspondence subsystem, chats the subsystem, the room management subsystem and so on several modules.4、Should chat tool any end all to be possible to take the server, also may be the client side. Regarding already the server which founds, in has not linked enters the Internet in the local area network also to be possible to correspond mutually.5、The software is based on the communication of the WINSOCK implementing the one to one chatting broadcasting chatting and the one to many chatting.6、The software has a multiple threads, therefore the synchronization of the threads is a key point.7、It is necessary that transport control information between client and client, client and server. So it is another key point that the software defines many types of information itself.KEY WORDS : Winsock network communication, Chatting, Implementing the one to one chatting, visual c++6.0目录摘要 (I)ABSTRACT .......................................................................................................... I I第一章绪论 ........................................................................................... - 2 -1.1 开发背景.................................................................................................................................. - 2 -1.2对已有聊天软件的分析 .................................................................................................... - 2 -1.3项目开发的主要内容 ........................................................................................................ - 2 -1.4项目开发的意义 ................................................................................................................ - 3 -1.5项目开发的过程 ................................................................................................................ - 3 -第二章系统分析...................................................................................... - 4 -2.1系统有关的技术 ................................................................................................................ - 4 -2.2系统方案说明 .................................................................................................................... - 6 -2.3系统任务概述 .................................................................................................................... - 6 -2.4系统其他要求 .................................................................................................................... - 7 -第三章系统设计...................................................................................... - 8 -3.1系统的硬件环境 ................................................................................................................ - 8 -3.2系统的模块结构 ................................................................................................................ - 8 -第四章系统实现........................................................................................ - 11 -4.1功能规定 .......................................................................................................................... - 11 -4.2系统数据结构设计 .......................................................................................................... - 12 -4.3几个主要的线程的程序设计 ................................................................................................. - 13 -第五章总结........................................................................................... - 25 -致谢 ..................................................................................................... - 27 -参考文献 ................................................................................................... - 28 -第一章绪论1.1 开发背景自从上世纪中叶第一台计算机诞生以来,计算机越来越走进人们的生活当中,特别是随着计算机网络的发展,把全世界的人们紧密的联系在一起,大大的扩展了计算机的功能,人们越来越离不开计算机了。
华北电力大学科技学院本科毕业设计(论文)基于web的聊天室系统的设计与实现摘要随着信息流量的日益加大,计算机网络技术得到飞速发展,各类网站不断涌现出来。
而最受青睐的应属具有动态效果、实施性质的相互交流的的网络平台,其页面的内容使用的不仅仅是标准的HTML代码。
而是加入了各种“交互性”。
将浏览器作为客户端界面,这将是今后WEB发展的大事所趋。
JSP具有一次编写,多处运行、系统多平台支持、强大的可伸缩性、多样化和功能强大的开发工具支持、支持服务器端组件等优势,所以本文选用JSP作为网站前端开发语言。
本文主要对网上聊天室进行需求分析,包括用户登录、用户注册、聊天室、聊天记录、密码修改。
在需求分析的基础上,对登录模块、注册模块、聊天室模块、聊天记录模块、数据库等进行了详细设计实现,最后对整个系统进行运行及测试。
该系统采用 Myeclipse,Mysql ,JSP作为开发工具。
关键词:WEB;JSP;聊天室;Mysql摘要 (1)Abstract ..................................... 错误!未定义书签。
1绪论.. (1)1.1课题背景和意义 (1)1.2聊天室研究现状 (1)1.3本文主要工作 (2)2 系统关键技术 (3)2.1 JSP技术 (3)2.1.1 JSP简介 (3)2.1.2 JSPWeb开发 (3)2.1.3 JSP的特点 (4)2.2 JDK (4)2.2.1 JDK组成 (5)2.2.2 JDK常用的包 (5)2.2.3 JDK常用工具 (5)2.3 Tomcat服务器 (6)2.3.1 简介 (6)2.3.2 Tomcat的功能 (6)2.4 MySQL数据库体系 (7)2.5 AJAX (8)3 系统需求分析 (9)3.1功能分析 (9)3.2 性能分析 (10)3.3 系统功能模块图例 (10)3.4 系统时序图 (10)4 WEB聊天室系统的功能实现 (12)4.1 Java简介 (12)4.2 系统运行环境的配置 (12)4.3 系统功能实现 (15)4.3.1 数据库设计 (15)4.3.2 功能模块设计 (16)4.4 系统运行截图 (21)5 总结与展望 (22)参考文献 (23)致谢 (24)1绪论1.1课题背景和意义伴随着Internet的发展与宽带技术的普及,人们可以通过Internet交换动态数据,展示新产品,与人进行沟通并进行电子商务贸易。
毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日导师签名:日期:年月日注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
1 前言1.1 文件传输与聊天系统的开发背景及选题意义互联网的普及和发展为人们的沟通提供了多种手段,近年来流行的即时通信是继电子邮件之后的又一种主流通信方式。
以色列Mirablils公司1996年11月推出了世界上第一个即时通信软件,即后来风靡全球的"网络寻呼机ICQ",宣告了"即时通信"这一概念的诞生。
即时通信系统利用服务器上的用户注册信息和联机用户建立起虚拟社区,服务器为社区成员提供状态信息和联系方式,以便用户之间互相通信,用户使用特定的即时通信客户端登录到服务器,找到他想联系的人进行交流。
在ICQ取得巨大成功之后,许多公司纷纷效仿,如美国AOL公司的Instant Messenger, Yahoo公司的Yahoo Messenger等。
有调查资料甚至列出了国外多达18种的即时通信软件。
在我国,深圳腾讯公司1999年2月推出了腾讯QQ。
目前国内数十家公司拥有自主知识产权的即时通信产品。
ICQ公司号称建立了世界上最大的网络用户群,拥有12亿注册用户遍布全球。
而腾讯公司则建立了中国最大的互联网注册用户群。
在技术层面上,即时通信系统也从最早的专用即时通信工具发展到了最新的XML网站集成服务。
更有甚者,美国微软公司把即时通信工具MSN Messenger捆绑在操作系统上随Windows2000等产品发行。
短短几年间,即时通信系统迅猛发展,商业产品层出不穷,用户遍布世界各地,技术日新月异。
即时通信工具凭借实时、有效的沟通功能,特别是凭借其对虚拟网络社区的建设,赢得了广大互联网用户的喜爱。
目前,它又通过集成其他媒体、拓展应用模式等方式继续发展壮大,进军电子商务、计算机协同工作等更广阔的天地。
本设计通过实际动手,用VC实现简单的即时通信系统,达到熟悉即时通信软件的应用环境及背景,熟悉即时通信软件的常用开发技术的目的。
本设计将最主要研究在这类即时通讯软件的开发中是如何运用SOCKET套接字编程技术来实现通讯交流。
本设计按照软件工程的思想从需求分析着手,进行总体设计,详细设计,编码及调试等步骤。
其中通信部分软件的设计与开发是本设计的重点。
本设计采用了CS体系结构和P2P方式通信的思想进行软件总体设计;撰写用以保证通信安全的密码算法,设计相关的密钥管理方案。
1.2 文件传输与聊天系统的发展现状现在国内面向个人的即时通信产品主要有腾讯QQ、微软MSN、网易泡泡、ICQ、雅虎通以及发展势头正猛的TOM-skype等。
面向企业用户的即时通信产品比较多,但除了腾讯、微软等少数运营商用户比较多以外,其他产品推出时间都很短,用户极少。
虽然即时通信业务已日益成熟,但目前各类即时通信软件及服务都存在不少缺陷,需要改进:(1)安全性问题。
目前,大多数即时通信系统的安全性较差,极易受到病毒攻击。
QQ、MSN就相继遭受过病毒的侵袭以及由网络故障带来的稳定性问题。
即时通信要想进一步发展,首先要解决的就是安全性问题。
(2)互联互通问题。
受多种因素制约,各即时通信工具间的互联互通问题至今未解决。
随着即时通信企业用户规模的进一步扩大,如何将不同的即时通信工具实现互联,以实现跨不同即时通信系统的即时通信就成了不可回避的话题。
(3)差异化问题。
市场上的几大即时通信工具,它们在服务功能、市场定位和目标市场选择上都基本雷同,缺乏特色。
即时通信如果继续如此近乎无差异化地发展下去,最后唯一的结果就是竞争日益激烈,不利于即时通信的发展。
1.3 本论文的组织结构第1章是前言,主要介绍文件传输与聊天系统的背景、选题的意义以及本论文的组织结构。
第2章是文件传输与聊天系统开发的技术基础,主要介绍开发即时通信软件的一些基本技术,网络开发的背景知识以及SOCKET API和MFC SOCKET 编程的基础。
第3章和第4章是文件传输与聊天系统系统分析及网络设计,主要详细的介绍开发即时通信软件网络设计的全过程,包括消息格式的设计,应用层协议的分析,以及相关网络通信类的描述,是本论文的重点。
第5章是文件传输与聊天系统网络设计的结果分析,主要总结出本论文设计的结果并进行分析。
最后的部分是结论、参考文献、致谢以及附录。
2 文件传输与聊天系统开发的技术基础2.1 网络协议简介2.1.1 TCP/IP网络层次模型当谈到TCP/IP模型的时候,不得不首先介绍OSI层次模型,虽然OSI参考模型的实际应用意义不是很大,但其的确对于理解网络协议内部的运作很有帮助,而在现实网络世界里,TCP/IP协议栈获得了更为广泛的应用。
OSI参考模型(OSI/RM)的全称是开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM),它是由国际标准化组织(International Standard Organization,ISO)提出的一个网络系统互连模型。
OSI模型从上到下分为应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
TCP/IP参考模型分为四个层次:应用层、传输层、网络互连层和主机到网络层(数据链路层)。
在TCP/IP参考模型中,去掉了OSI参考模型中的会话层和表示层(这两层的功能被合并到应用层实现)。
同时将OSI参考模型中的数据链路层和物理层合并为主机到网络层。
TCP/IP模型将OSI参考模型中的会话层和表示层的功能合并到应用层实现。
很多高级应用协议都是在这个层次实现的,在基于TCP 协议中,比如文件传输协议FTP(File Transfer Protocol)、简单邮件传输协议SMTP(Simpel Mail Translate Protocol)、超文本链接协议HTTP(Hyper Text Transfer Protocol);基于UDP协议中,比如域名系统DNS(Demain Name System),简单文件传输协议TFTP(Trivial File Transfer Protocol)等。
2.1.2 TCP和UDP协议基础尽管TCP和UDP都使用相同的网络层(IP)且都工作在传输层,TCP却向应用层提供与UDP完全不同的服务。
TCP协议提供了一种面向连接的、可靠的字节流服务。
面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。
这一过程与打电话很相似,先是拨号振铃,等待对方接电话后,然后再进行说话交流。
只有当建立好TCP连接后,双方才可以进行通信。
与TCP不同,UDP是一种简单的无连接的面向数据报的传输层协议,它是不可靠的,它把应用程序传给IP层的数据发送出去,但是并不保证它们能到达目的地,使用UDP协议的场合与TCP是不一样的,或许正因为它的无连接性使得UDP传输的效率很高,这也是为什么即使它的可靠性不高但是依然存在的理由。
本次设计大量使用了UDP协议进行传输数据,并针对它的不可靠性做些处理。
2.2 Socket套接字编程2.2.1 Socket套接字简介网络程序设计全靠套接字(SOCKET)接收和发送信息。
什么是套接字?套接字的英文原意是“孔”或“插座”,作为BSD UNIX的进程通信机制,取后一种意义。
套接字实质上提供了进程通信的端点。
进程通信之前,双方首先必须各自创建一个端点,否则没有办法建立联系并相互通信的。
套接字是面向客户—服务器模型设计,针对客户和服务器提供不同的套接字操作。
套接字有三种类型:流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM)及原始套接字。
流式套接字可以提供可靠的、面向连接的通信流,对应于TCP协议。
通过流式套接字接收的数据顺序和发送的数据顺序是一致的。
数据报套接字定义了一种无连接的服务,对应于UDP协议。
数据通过相互独立报文进行传输,是无序的,并且不保证可靠、无差错。
原始套接字允许对底层协议如IP和ICMP直接访问,主要用于新的网络协议的开发实现和测试等,它工作在网络互连层,对程序员的要求比较高。
Socket提供了一组通用的函数组,这些函数在现在绝大部分操作系统中都提供内核的支持,所以无论是什么编程语言,比如C,Perl,Java,Pascal,Basic等都可以提供这些函数的接口,使得Socket编程具有一定的移植性。
2.2.2 Socket函数以及TCP客户机/服务器模型下面是传统的Socket函数接口,这些函数已经足够编制出功能强大的网络应用程序了。
int socket(int domain, int type, int protocol);int bind(int sockfd, struct sockaddr *hostaddr, int addrlen);int listen(int sockfd, int backlog);int recv(int sockfd, void *buf,int len, int flags);int send(int sockfd,void *buf,int len,int flags);int recvfrom(int sockfd,void *buf,int len,unsigned int flags,struct sockaddr * from, int *fromlen);int sendto(int sockfd,const void *msg,int len,unsigned int flags,struct sockaddr *to, int tolen);int select(int nfds, fd_set* readfds,fd_set* writefds,fd_set*exceptfds, struct timeval* timeout);传统的socket套接字函数是编写网络程序的基础,即便是使用MFC中的CSocket类来进行网络编程,对底层Socket API的了解也是非常有益的。
以下为TCP客户机/服务器模型,如图2.1所示:图2.1 TCP客户机/服务器模型2.3 MFC网络编程类VC中提供的CSocket类以及CAsyncSocket类使得编写网络程序变得很简单,从创建套接字到数据的接收和发送都变得非常快捷,下面就主要就本设计将要用到的CAsyncSocket类进行重点描述。
①创建一个套接字创建套接字一般分为两个步骤。
先通过调用CAsyncSocket的构造函数不带参数,它创建一个空的套接字对象,真正的创建工作由Create函数完成,其函数原型如下:BOOL Create (UINT nSocketPort=0,Int nSocketType=SOCK_STREAM,Long lEvent=FD_READ|FD_WRITE|FD_OOB|FD_ACCEPT|FD_CONNECT|FD_CLOSE,LPCTSTR lpszSocketAddress=NULL,);nSocketPort为套接字指定一个端口,若是服务器套接字,那么应该为其指定一个端口。