网络文件传输系统的设计与实现
- 格式:doc
- 大小:537.50 KB
- 文档页数:25
局域网飞鸽传书软件的设计与实现摘要网络通讯在当今已经不算新鲜事物,但大多数网络通讯都需要借助Internet 上的服务器,这就给那些具有大规模内部网络的用户造成了许多问题,如浪费网络资源、遭遇到网络攻击、传播的病毒、破坏防御系统等等。
由于互连网上的网络通讯工具给企业内部信息交流带来了不便,所以为了方便内部网络的用户之间的沟通,需要开发一个基于局域网的信息收发系统的即时通讯工具,实现在内部网络中进行信息的交流。
本课题设计主要针对局域网通讯而开发设计的,采用的是C/S构架,类似飞鸽传书系统,来实现聊天、文件传输功能,并借助一些网络通讯组件,成功的实现了在局域网上的即时通讯。
本论文的目标是设计一个类似飞鸽传输的局域网通信软件,并分析它在其领域的优势。
本设计以C编写,能在windows 2000/net/xp等环境下运行。
设计共分为五大模块,分别是:首先,介绍选题背景及意义和国内外研究现状;其次,介绍TCP/IP点对点协议技术,C/S架构和SOCKET网络编程技术;再次,对当前局域网文件传输进行需求分析并提出解决方案;然后,根据解决方案对系统进行设计;最后,对工作计划统计以及分析系统进行测试并得到测试结果。
关键词:聊天;传输;socket;飞鸽传书;C/S结构Design and Implementation IP Messenger Based on LANAbstractThe network communication already do not calculate the new things now, but the majority network communication all need to be support by the server on the Internet, this make these user have the large-scale internal network who many problems, such as waste network resources, be attacked by network, dissemination virus, destruction defense system and so on. Because the interconnection network communication facilities on the interior communication brought inconveniently for the enterprise, in order to facilitate internal communication between network user's, needs to develop one based on the local of instant message area network information receiving and dispatching system instant message facilities, realizes carries on the information which network the exchange. This topic design mainly aims at the local area network communication to develop the design, uses is the C/S skeleton,like IP Messenger, for chat and files transmission.LAN against the text chat, documents and folders transmission, the design of a fake IP Messenger of LAN software, and analyze it in their areas of advantage. The design is developed by C program it can make in the cnvironment of windows 2000/net/xp of topic selection, in the environment The design altogether divides into five big modules, respectively is: First, introduction selected topic background and significance and domestic and foreign research present situation; Second, introduces the TCP/IP point to point protocol technology; C/S construction technique and sockt network programming technology; Third, carries on the demand of the current local area network file transfer to analyze and propose the solution; Fourth, carries on the design according to the solution to the system; Fifth, statistic the work plan, awalys and test the system and obtains the testnesult.Key words: Chat;transmission; socket; C/S skeleton;IP Messenger目录论文总页数:20页1引言 11.1课题背景 11.2本课题主要研究背景 11.3本课题主要研究思路和方法 11.4研究项目的目的以及意义 21.5 WINSOCKET的寻址方式 22系统需求分析 22.1系统设计目标 22.2系统总体需求分析 32.3组织结构的分析 32.3.1开发运行环境 32.3.2系统开发语言 43理论知识 43.1 C/S软件架构技术 43.2 用户数据报协议(UDP) 43.3单播、广播、组播浅析 54系统设计 54.1 文字聊天模块的整体构架 54.2 文件传输模块的主要流程图 64.3系统的主要功能模块 64.3.1文字聊天的主登录界面 64.3.2文字聊天信息的封装 94.3.3 聊天信息的加锁 104.3.4文件传输的界面 124.3.5用户密封或加锁传输文件 155系统测试 175.1测试环境 175.2测试结果 17结论 17参考文献 18致谢错误!未定义书签。
网络文件传输系统的设计与实现作者指导老师摘要:在科学技术飞速发展的今天,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++文件传输毕业设计摘要:本文描述了一个基于C++的文件传输系统的设计与实现。
该系统具有高效和安全的特点,并且采用了TCP/IP协议进行数据传输。
系统分为客户端和服务器端,客户端可以将本地文件传输到服务器端,服务器端可以接收并保存文件。
在设计过程中,使用了文件流、套接字编程和多线程技术。
通过对系统进行测试和评估,验证了其稳定性和可靠性。
最终结果表明,该文件传输系统能够快速、安全地传输大文件,并且能够满足用户的需求。
1. 引言文件传输是计算机网络中常见的任务之一。
随着互联网的发展和普及,文件传输系统需要具备高效、安全、稳定和可靠等特点。
本文设计了一个基于C++的文件传输系统,该系统通过TCP/IP协议进行数据传输,能够满足用户的需求。
2. 系统设计2.1 系统结构文件传输系统分为客户端和服务器端两部分。
客户端提供了文件选择和传输功能,服务器端则负责接收和保存文件。
2.2 数据传输系统基于TCP/IP协议进行数据传输,使用套接字编程进行通信。
客户端通过套接字将文件内容划分为较小的数据块并发送给服务器端,服务器端再将接收到的数据块组合成完整的文件。
2.3 多线程技术为了提高系统的传输效率,使用了多线程技术。
客户端和服务器端均开启多个线程进行文件传输,从而实现并发传输。
3. 系统实现3.1 客户端实现客户端使用C++编写,通过用户界面提供文件选择的功能。
客户端接收用户选择的文件,并将文件内容划分为数据块进行传输。
客户端还可显示传输进度和传输结果。
3.2 服务器端实现服务器端使用C++编写,通过套接字接收客户端传输的数据块。
服务器端将接收到的数据块组合成完整的文件,并保存到本地磁盘中。
服务器端还可显示传输进度和传输结果。
4. 系统测试与评估为了验证系统的稳定性和可靠性,对系统进行了测试。
通过传输大文件和多个文件,评估系统的传输速度和传输成功率。
测试结果表明,系统能够快速、安全地传输大文件,并且具有良好的稳定性和可靠性。
对文件上传功能进行用例设计1.引言1.1 概述文件上传功能是指通过网络将本地计算机上的文件传输到服务器或其他网络设备中的功能。
随着互联网的发展和普及,文件上传成为了人们日常生活和工作中不可或缺的一部分。
从上传个人照片到社交媒体,到上传重要文档到云存储服务,文件上传功能被广泛应用于各个领域。
文件上传功能的可靠性、安全性和易用性对于用户来说都非常重要。
一个良好设计的文件上传功能应该能够方便用户上传不同类型和大小的文件,同时能够对用户上传的内容进行有效的过滤和验证,以确保上传的文件符合要求并且不会对系统造成安全威胁。
在进行文件上传用例设计时,需要考虑以下几个方面:首先,确定用户的上传需求,例如上传文件的类型、大小限制以及上传的位置。
其次,需要考虑用户在上传过程中可能遇到的错误情况,例如上传失败、网络中断等。
最后,需要设计合适的用户界面和交互方式,以提供友好的上传体验。
本文将对文件上传功能进行用例设计,以便更好地理解和分析该功能的需求和特性。
通过设计测试用例,可以更好地检验文件上传功能的完备性和稳定性,提高系统的可靠性和用户的满意度。
文章结构部分的内容如下:1.2 文章结构本文将围绕文件上传功能展开讨论,内容分为三个部分:引言、正文和结论。
引言部分将对本文的背景和目的进行概述,介绍文件上传功能的重要性以及本文的研究意义。
正文部分将分为两个子部分,分别介绍文件上传功能的基本概念和原理,以及文件上传功能的用例设计。
在文件上传功能介绍的部分,将详细阐述文件上传的定义、特点以及应用场景,旨在引起读者对文件上传的兴趣。
在文件上传用例设计的部分,将详细说明如何根据不同的需求情况设计相应的用例,包括各种常见的上传场景和可能的异常情况。
结论部分将对本文的内容进行总结,并提出一些建议。
总结部分将回顾文章的主要观点和论述,强调文件上传功能的重要性并指出未来的研究方向。
建议部分将提供针对文件上传功能的一些建议,包括如何提升上传效率、加强数据安全以及改善用户体验等方面的建议。
FTP客户端的设计与实现摘要FTP是Internet上用来传送文件的协议。
它是为了我们能够在Internet上互相传送文件而制定的文件传送标准,规定了Internet上文件如何传送.通过FTP协议,我们就可以跟Internet上的FTP服务器进行文件的上传或下载。
本设计以实现一个简单易用的FTP客户端为目标,通过分析FTP协议的基本工作原理和FTP的数据传输原理,研究如何使用VC++语言对FTP客户端进行设计,用Visual Studio2010设计和实现了FTP客户端的开发。
关键词FTP的工作原理;VC++;FTP客户端1绪论1。
1 课题背景FTP是互联网上使用最广泛的文件传输协议[1].在互联网早期曾占据整个互联网通信的三分之一,它解决了在不同操作系统下处理文件格式的不兼容性。
传统方式需要在DOS 下输入命令,对于普通用户是件极困难的事。
但有了FTP客户端软件后,只要轻点几下鼠标就可以完成所有操作。
FTP客户端应该包含以下功能:登录,浏览目录,上传和下载[2]。
它已成为人们不可缺少的软件之一.1。
2 研究现状FTP服务是Internet上最早应用于主机之间进行数据传输的基本服务之一。
起初,FTP 并不是应用于IP网络上的协议,而是20世纪60~80年代美国国防部组建的ARPANET网络中,用于计算机间的文件传输的协议。
FTP服务的一个非常重要的特点是其实现可以独立于平台,也就是说在UNIX、DOS、Windows等操作系统中都可以实现FTP的客户端和服务器[3]。
尽管目前已经普遍采用HTTP方式传送文件,但FTP仍然是跨平台直接传送文件的主要方式。
目前市面上可通过正规渠道获得的成熟的FTP软件如Server-U、Cuteftp、Transmit、Flashfxp等都是国外开发的,需要注册、付费使用。
从其他渠道获取的FTP软件,则存在安全方面的问题。
国内也很难找到免费、安全的FTP软件。
虽然操作系统有自带的FTP软件,但它是基于命令行的,没有友好的用户操作界面,对用户的计算机技能要求较高,一般的用户也不会用,而且不支持断点续传和文件夹的上传、下载等功能[4]。
基于VC 的Winsock 的文件传输程序的设计环境要求:Windows95/98/2000/XP功能要求:能将键盘上指定的文件发送到另一台计算机上;能将接收到的数据显示到屏幕窗口内,并显示收到文件的字节数和文件传输速率;一、设计目标用TC、Visual BASIC、Visual C++、Java 等编程工具和路由器、交换机、主机等网络设备提供的接口,解决网络用户之间的交互式对话问题,或计算通信网络的延迟、信道容量分配,或编码分析、通信协议分析,网络互连互通、网络规划。
进一步深入掌握网络设计和通信程序的设计原理。
使学生对计算机通信网络的设计实现有较深的了解,培养较高的通信网络设计能力。
本课设实验将基于2013版Visual Studio进行WINSOCK的文件传输的编程实现。
在WINDOWS95/98,WINDOWSNT进行WINSOCK开发使用的编程语言有很多,VC++,JAVA,DELPHI,VB等。
其中VC时使用最普遍,和WINSOCK结合最紧密的。
并且VC++对原来的WindowsSockets 库函数进行了一系列封装,继而产生了CAsynSocket、CSocket、CSocketFile等类,它们封装着有关Socket的各种功能,是编程变得更加简单。
SOCKET实际在计算机中提供了一个通信端口,可以通过这个端口与任何一个具有SOCKET 接口的计算机通信。
应用程序在网络上传输,接收的信息都通过这个SOCKET接口来实现。
在应用开发中就像使用文件句柄一样,可以对SOCKET句柄进行读,写操作。
二、设计原理套接字(Socket) 是一种网络编程接口,它是对通信端点的一种抽象,提供了一种发送和接收数据的机制。
套接字有两种类型:流式套接字(St ream Socket s) 和数据报套接字(Datagram Socket s) 。
数据报套接字提供了一种不可靠的、非连接的数据包通信方式,它使用用户数据报协议(UDP) ;而流式套接字可以将数据按顺序无重复地发送到目的地,它提供的是一种可靠的面向连接的数据传输方式。
基于局域网的文件传输系统的设计与实现一、系统需求分析首先,我们需要明确系统的需求。
基于局域网的文件传输系统应该具备以下功能:1、快速传输:能够在局域网内实现高速文件传输,减少传输时间,提高工作效率。
2、安全性:对传输的文件进行加密处理,确保文件内容的保密性和完整性。
3、稳定性:在网络环境不稳定的情况下,依然能够保证文件传输的可靠性,不会出现文件丢失或损坏的情况。
4、多用户支持:允许多个用户同时使用系统进行文件传输,且每个用户都有自己的权限和存储空间。
5、操作简便:系统界面简洁直观,用户能够轻松上手,无需复杂的培训。
二、系统设计(一)总体架构设计系统采用客户端服务器(C/S)架构。
服务器端负责管理用户信息、文件存储和传输控制,客户端则负责与用户进行交互,实现文件的上传、下载等操作。
(二)功能模块设计1、用户管理模块:用于注册、登录、修改用户信息等操作。
2、文件传输模块:实现文件的上传、下载、删除等功能。
3、权限管理模块:为不同用户设置不同的权限,如只读、读写等。
4、加密模块:对传输的文件进行加密和解密,保障文件安全。
5、日志管理模块:记录系统的操作日志,便于追踪和审计。
(三)数据库设计建立数据库来存储用户信息、文件信息、权限信息等。
用户表包括用户 ID、用户名、密码等字段;文件表包括文件 ID、文件名、文件路径、文件大小等字段;权限表包括用户 ID、文件 ID、权限类型等字段。
(四)网络协议选择选用 TCP/IP 协议作为系统的网络通信协议,保证数据传输的可靠性和稳定性。
三、系统实现(一)服务器端实现1、使用 Java 或 C++等编程语言实现服务器端的逻辑。
2、建立监听端口,等待客户端的连接请求。
3、处理客户端的注册、登录等请求,并验证用户信息。
4、接收客户端上传的文件,存储到指定位置,并更新数据库中的文件信息。
5、响应客户端的下载请求,将文件发送给客户端。
(二)客户端实现1、使用相应的编程语言开发客户端界面,提供简洁直观的操作界面。
I T 技术科技创新导报 Science and Technology Innovation Herald38近年来,随着嵌入式计算技术的不断发展,V x Wo r k s实时操作系统以其良好的可靠性和实时性被广泛应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中。
在某综合导航控制系统中,需要将系统运行过程中的姿态数据、G P S数据及各种工作状态数据实时记录下来,记录一段时间后要将记录的数据导出,以便于分析。
由于嵌入式操作系统硬件资源的容量以及处理器的处理能力等方面的限制,而且在系统中只需要进行文件的发送和接收,不需要其它复杂的功能。
为了适应系统的应用,设计了一种简单的文件传输协议,实现了VxWorks系统下可靠的文件传输。
1 原理VxWork s系统中有一个简单文件传送协议(T F T P),是为传送简单文件而设计的。
T F T P是协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂,开销不大的文件传输服务。
T F T P 把操作限制在简单的文件传输而不提供用户认证和授权等功能。
正是因为这些功能上的限制,T F T P 的软件要比F T P 小很多,这样更适用于嵌入式操作系统。
T F T P 可以为用户读或写文件。
读是表示从服务器端把文件复制到客户端。
写是表示从客户端把文件复制到服务器端。
T F T P 共有5种类型的报文,分别为:写请求报文(W RQ)、读请求报文(R RQ)、数据报文(DATA)、确认报文(AC K)和错误报文(E R R O R)。
T F T P 使用U D P服务,因为在UD P中不提供连接建立和终止,UD P在传送每一个数据块时,把它封装在独立的用户数据报中。
T F T P 就是使用上面所述的5种类型报文来建立连接。
为了实现较为可靠的传输,需要有一种出错重传机制来保证数据的正确性。
ARQ(Automatic Repeat request)自动重传请求机制是一种实现无线通信节点之间信号可靠传输技术,通过接收、发送节点之间的确认机制,来控制重传确保信息的可靠传输,有3种基本方式:停止等待ARQ、连续AR Q 、选择重传AR Q 。
网络文件传输系统的设计与实现作者指导老师摘要:在科学技术飞速发展的今天,Internet已经和人们的日常生活息息相关,无论是工作,学习还是娱乐,都离不开网络。
比如有时候需要进行文件的传输,虽然现在的许多网络文件传输工具能基本满足人们对文件传输质量的要求,但是它们往往都存在安全性,工作效率低等问题。
本课程设计的文件传输系统是在Windows操作系统下,Visual C + + 6.0环境下借用WinSock控件实现的,是基于TCP/IP协议的C/S模式,在服务器和客户端分别以socket为中心进行编程,客户端和服务器端的界面分别是由文件发送模块和文件接收模块组成。
客户端先调用connect()与服务器建立连接,然后用send()发送数据;服务器端先调用listen()侦听客户端的连接请求,然后调用accept()对连接请求进行响应,如果需要接收数据,则会调用receive()接收。
本文件传输系统成功的实现了服务器和客户端的文件传输,不论是较小范围内的局域网还是远程网,而且还可以传输多种格式的文件,如word,视频,图像等。
相比其它文件传输工具而言,本系统有很多的优点。
首先,界面简单,易于操作;其次,传输较大的文件时,不需要花费很长时间。
关键词:文件传输;WinSock ; socket编程; C/S结构目录1 绪论 (1)1.1选题背景 (1)1.2选题意义 (1)2开发环境及相关技术简介 (2)2.1开发环境Visual C++ 6.0介绍 (2)2.2基于vc的socket网络编程的基本原理 (2)2.2.1 socket的基本概念 (2)2.2.2Winsock网络编程原理 (3)2.3 TCP/IP协议简介 (3)2.5 C/S结构 (4)2.5.1 C/S结构的概念 (4)2.5.2 C/S结构的工作模式 (4)2.5.3 C/S结构的优点 (4)3 网络文件传输系统的设计 (5)3.1服务器端和客户端界面介绍 (5)3.1.1服务器界面介绍 (5)3.1.2客户端界面介绍 (6)3.2服务器端,客户端程序分析 (6)3.2.1服务器端分析 (6)3.2.2客户端分析 (11)4实现 (15)4.1系统运行环境 (15)4.2文件传输系统的测试 (15)4.2.1实验一:局域网内文件传输 (15)4.2.2实验二:远程网络上文件传输 (17)4.2.3实验三:较大文件的传输 (18)4.2.4实验四:不同格式文件的传输 (19)4.3该文件传输系统的不足 (20)5结论 (20)致谢 (22)参考文献 (23)1 绪论1.1选题背景21世纪被称为信息时代,因为计算机技术的迅猛发展,给人们的日常生活以及工作,都带来翻天覆地的变化。
其中尤以互联网最为显著,人们通过Internet 达到学习,娱乐,交流,工作等目的。
通过internet获取更多,更及时有效的信息。
特别是在工作或者学习上,需要经常进行文件传输,所以各种文件传输系统应运而生,比如邮件,各种聊天工具等。
这些软件在使用上各有所长,各有特色。
但是与此同时,这些文件传输工具自身的很多缺点以及局限性依然给文件的传输带来了很多的不便。
首先,对远程服务器的依赖导致了有些文件传输工具不能完全实现点对点的文件传输,甚至对文件的安全造成了威胁;其次,这些传输工具只能传输体积较小的文件,如果传输的文件体积过大的话,会耗费很长的时间,进而导致资源的浪费,网络速度不理想的情况下可能会导致传输中断。
最后,电子邮件传输文件存在实时性的缺陷,把邮件传到另一个服务器上的用户的前提是先把邮件信息存到本地服务器上,这中间可能经过其它若干服务器,因此很难实现用户对文件的实时传送的要求。
因此,急需开发一个功能简单,易于操作,可移植的文件传输工具,并且该文件传输工具可以在Windows平台下运行。
1.2选题意义通过对本次课题的研究,使我们更加清晰的了解到互联网技术的变革之快以及给我们的生活带来的巨大变化,更重要的是培养了我们科学的解决问题的能力,同时,使我们对文件传输系统的原理及设计有了正确的认识。
文件传输系统是基于C/S模式的,以socket为中心实现服务器和客户端的通信。
该系统结构简单,便于操作,且可以发送各种类型的文件,如word文档,图像,视频等。
只需要输入服务器的ip地址或者主机名以及文件的保存路径,就可以发送文件。
该文件传输系统给企业的文件的共享带来了很大的便捷。
我们大学学到的很多理论知识在这次文件传输系统的设计中得到了很好的体现,如tcp/ip协议,Visual C ++等。
除此之外,还接触到了socket套接字,以及对socket编程有了一定的了解。
2开发环境及相关技术简介2.1开发环境Visual C++ 6.0介绍Visual C ++是一个可视化的软件开发工具,且其功能非常强大。
Visual C++主要由三个部分组成[1]。
分别为:Developer Studio,MFC,Platform SDK。
由于Visual C++其他版本存在局限性等问题,所以实际编程中更多的是以Visual C++6.0为平台。
Visual C++6.0的组件包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。
Developer Studio组件会把这些组件集成为一个和谐的开发环境。
Visual C++提供了基于CASE技术的可视化软件自动生成和维护工具Wizard Bar、Class Wizard、Visual Studio、AppWizard等,实现了直观、可视的程序设计风格[2],除此之外,Visual C++还封装了Windows的API函数、GDI、KERNEL、USER函数,使得原本编程时创建、维护窗口的许多复杂的工作变得更为简单。
Visual C++应用程序的开发有两种模式[2],WIN API和MFC。
WIN API 开发方式较为繁琐,而对于MFC而言,首先,MFC则是对WIN API的再次封装;其次,MFC减少了大量冗余代码的编写以及定义消息处理所需的繁杂的代码段。
所以MFC相对来说会给程序的编写带来很多方便。
本课程设计就是在MFC中完成的。
2.2基于vc的socket网络编程的基本原理2.2.1 socket的基本概念套接字(socket)是一种网络编程接口[4],实际上就是一个通信端点,提供了发送和接收数据的机制。
而Winsock是基于Windows操作系统下的网络编程接口,也就是基于Socket 模型的API 。
而最简单的一对一的CS结构的通信程序,就只有两个端点,即两个套接字(Socket),一个在Server端,另一个在Client 端,这两个套接字就在CS间建立了双向数据传送的连接。
每个套接字都有一个套接字地址,通常是IP和端口的组合。
套接字(Socket)最基本的分为两类[4]:流式套接字和数据报套接字。
流式套接字:顺序的、无重复的、面向连接的可靠的传输机制,而且是双向数据传输,主要用于TCP的通信程序;数据报套接字:是面向无连接的传输机制,不保证顺序、无重复和可靠的双向数据传输,主要用于UDP的通信程序。
本课程设计中使用的是流式套接字。
2.2.2Winsock网络编程原理在服务器端利用socket函数创建服务器端套接字,然后调用bind()函数将套接字绑定到本地地址和端口上,再调用lisnten()函数,将套接字设置为监听模式,用于监听连接请求。
调用accept()函数等待客户的连接到来并且接受客户的连接请求,当accept函数接受客户端的连接请求时,会返回一个相对于新的套接字描述符,然后利用新的套接字就可以和客户端进行通信,原来的套接字继续监听其他的连接请求。
利用send()函数向客户端发送数据,从客户端接受数据时,利用recvive()函数接收客户端发送的数据。
当通信完成后,调用closesocket()关闭套接字。
在客户端利用socket()函数创建客户端套接字,然后调用connect()函数向服务器端发送连接请求,建立连接之后,就可以利用recvive()函数接受服务器端的数据,客户端向服务器端发送数据可以调用send(),完成数据的发送或接收之后,调用closesocket()关闭套接字,释放资源。
2.3 TCP/IP协议简介TCP/IP协议是Transmission Control Protocol/Internet Protocol的简写[7],即传输控制协议/因特网互联协议,是internet最基本的协议,tcp/ip协议是定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。
该协议采用了4层的层级结构:网络接口层、网络层、传输层、应用层。
每一层都利用它的下一层所提供的网络来完成自己的需求。
网络接口层对应于原OSI结构中的物理层和数据链路层[7],物理层是定义物理介质的各种特性,如:机械特性,功能特性等。
而数据链路层是负责接收IP 数据包并通过网络发送,或者从网络上接收物理帧,抽出IP数据报,交给IP层。
常见的网络接口层协议有:Ethernet 802.3、Token Ring 802.5、X.25、Frame relay、PPP 等。
网络层负责相邻计算机之间的通信[7]。
其功能包括:处理来自传输层的分组发送请求,处理输入数据报,流控拥塞等问题。
常见的网络层协议有:ip协议、ICMP协议、IGMP协议、ARP协议。
传输层提供应用程序之间的通信[8]。
主要功能有:格式化信息流以及提供可靠传输。
常见的传输层协议有:TCP协议、UDP协议。
应用层是向用户提供一组常用的应用程序的,如电子邮件,远程登录等。
一般是面向用户的服务。
常见的应用层协议有:FTP协议、Telent协议、DNS、SMTP 协议、POP3协议。
2.5 C/S结构2.5.1 C/S结构的概念C/S (Client/Server)结构[7],它是一种软件系统体系结构,也就是客户机/服务器结构。
它可以充分利用两端硬件环境的优势,将任务合理分配到Client 端和Server端来实现,降低了系统的通讯开销。
2.5.2 C/S结构的工作模式C/S 结构的基本原则是“功能分布”原则[8],也就是将计算机应用任务分解成多个子任务,由多台计算机分工完成。
客户端完成数据处理,数据表示以及用户接口功能;服务器端完成DBMS的核心功能。
这种客户请求服务、服务器提供服务的处理方式是一种新型的计算机应用模式。
2.5.3 C/S结构的优点C/S结构的优点是客户端和服务器端都能够处理任务,所以很多工作可以在客户端处理之后再提交给服务器,这样不仅减轻了服务器的压力,而且使得客户端响应速度变得很快。