欢迎来到天天文库
浏览记录
ID:5682057
大小:1.23 MB
页数:22页
时间:2017-12-22
《linux环境下基于tcp_ip及socket技术的远程文件传送控制编程报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Linux环境下基于TCP/IP及Socket技术的远程文件传送控制编程报告Linux环境下基于TCP/IP及Socket技术的远程文件传送控制编程报告2013年5月第22页共22页Linux环境下基于TCP/IP及Socket技术的远程文件传送控制编程报告目录一、编程目的3二、通信原理3(一)TCP/IP3(二)Socket4三、Linux虚拟环境安装7(一)VMware简介7(二)Linux简介8(三)Linux虚拟环境安装9四、设计过程11(一)服务器端创建监听与文件管理11(二)客户端连接与文件传输12五、结果演示12六、代码开发13(一)服务器端13(二)客
2、户端18七、结束语20第22页共22页Linux环境下基于TCP/IP及Socket技术的远程文件传送控制编程报告一、编程目的这次程序设计的目标是在以Linux为内核的操作系统下,实现多线程文件传输系统功能模块。系统模块分为服务器和客户端两部分,客户端实现对文件的上传、下载和查看服务器默认路径下的文件列表;服务器可以对文件进行管理操作,包括创建、删除和重命名等。多线程文件传输是一种一对多或者多对多的关系,一般是一个服务器对应着多个客户端。客户端通过socket连接服务器,服务器要为客户端创建一个单独进程(线程)监听每个客户端的请求。创建好连接之后文件就可以通过流的形式
3、传输。linux内核中为我们提供了两种不同形式的读写流,包括read()、write()和send()、recv()。客户机对文件的查看指令也是通过流传递给服务器,服务器根据请求类型返回不同相应流。根据socket原理和特点绘画出链接流程图,将客户机与服务器的相互通信划分为不同的模块,每个模块负责独立的功能项。服务器输入指令管理目录下的文件,createfilename是创建文件命令,renameoldnamenewname是删除文命令,deletefilename是删除文件命令,同时监听着客户端的请求;客户端向服务器发送上传、下载和查看请求,从而得到不同的相应,包括
4、将文件下载到当前路径下,从当前路径下上传文件给服务器,列出服务器的文件列表。二、通信原理Linux是计算机使用的主流操作系统之一,TCP/IP是广为应用的互联网协议,Linux为TCP/IP网络编程提供了一种网络进程通信机制:套接字接口(Sockets Interface)。以下将介绍Linux环境下套接字的基本概念及编程技术,并结合实例说明在Linux下如何用套接字实现客户机/服务器方式的进程通信。(一)TCP/IPTCP/IP即传输控制协议/网际协议(TransmissionControlProtocol/InternetProtocol),是一个由多种协议组成的
5、协议族,他定义了计算机通过网络互相通信及协议族各层次之间通信的规范。TCP是一种面向连接的、可靠的、双向的通信数据流,说他可靠,是因为他使用3段握手协议传输数据,并且在传输时采用“重传肯定确认”机制保证数据的正确发送:接收端收到数据后要发出一个肯定确认,而发送端必须要能接收到这个肯定信号,否则就要将数据重发。在此原理基础之上,设计了基于Linux操作系统下TCP/IP编程实现文件传输的实例。我们采用客户机/务器模式通信时,通信双方发送/接收数据的工作Linux支持BSD的套接字和全部的TCP/IP协议,是通过网络协议将其视为一组相连的软件层来实现的。BSD套接字(BS
6、DSocket)由通用的套接字管理软件支持,该软件是INET套接字层,用来管理基于IP的TCP与UDP端口到端口的互联问题。从协议分层来看,IP是网络层协议,TCP是一个可靠的端口到端口的传输层协议,他是利用IP层进行传接报文的;同时也是面向连接的,通过建立一条虚拟电路在不同的网络问传输报文,保证所传输报文的无丢失性和无重复性。用户数据报文协议(UserDatagram第22页共22页Linux环境下基于TCP/IP及Socket技术的远程文件传送控制编程报告Protocol,UDP)也是利用IP层传输报文,但他是一个非面向连接的传输层协议。利用IP层传输报文时,当目
7、的方网际协议层收到IP报文后,必须能够识别出该报文所使用的上层协议(即传输层协议)。因此,在IP报头中,设有一个“协议”域(Protoco1)。通过该域的值,即可判明其上层协议类型。传输层与网络层在功能上的最大区别是前者提供进程通信能力,而后者则不能。在进程通信的意义上,网络通信的最终地址不仅仅是主机地址,还包括可以描述进程的某种标识符。为此,TCP/UDP提出了协议端口(ProtocolPort)的概念,用于标识通信的进程。例如,Web服务器进程通常使用端口80,在/etc/serv~ices文件中有这些注册了的端口地址。对于TCP传输,传输节点问
此文档下载收益归作者所有