linux环境下基于tcp_ip及socket技术的远程文件传送控制编程报告

上传人:Bod****ee 文档编号:47169634 上传时间:2018-06-30 格式:DOC 页数:21 大小:1.05MB
返回 下载 相关 举报
linux环境下基于tcp_ip及socket技术的远程文件传送控制编程报告_第1页
第1页 / 共21页
linux环境下基于tcp_ip及socket技术的远程文件传送控制编程报告_第2页
第2页 / 共21页
linux环境下基于tcp_ip及socket技术的远程文件传送控制编程报告_第3页
第3页 / 共21页
linux环境下基于tcp_ip及socket技术的远程文件传送控制编程报告_第4页
第4页 / 共21页
linux环境下基于tcp_ip及socket技术的远程文件传送控制编程报告_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《linux环境下基于tcp_ip及socket技术的远程文件传送控制编程报告》由会员分享,可在线阅读,更多相关《linux环境下基于tcp_ip及socket技术的远程文件传送控制编程报告(21页珍藏版)》请在金锄头文库上搜索。

1、Linux 环境下基于 TCP/IP 及 Socket 技术的远程文件传送控制 编程报告2013 年 5 月Linux 环境下基于 TCP/IP 及 Socket 技术的远程文件传送控制编程报告第 2 页 共 21 页目目 录录一、编程目的.3 二、通信原理.3 (一)TCP/IP.3 (二)Socket.4 三、Linux 虚拟环境安装.7 (一)VMware 简介 .7 (二)Linux 简介.8 (三)Linux 虚拟环境安装.9 四、设计过程.11 (一)服务器端创建监听与文件管理.11 (二)客户端连接与文件传输.12 五、结果演示.12 六、代码开发.13 (一)服务器端.13 (

2、二)客户端.18 七、结束语.20Linux 环境下基于 TCP/IP 及 Socket 技术的远程文件传送控制编程报告第 3 页 共 21 页一、编程目的一、编程目的这次程序设计的目标是在以 Linux 为内核的操作系统下,实现多线程文件传输系统功 能模块。系统模块分为服务器和客户端两部分,客户端实现对文件的上传、下载和查看服 务器默认路径下的文件列表;服务器可以对文件进行管理操作,包括创建、删除和重命名 等。 多线程文件传输是一种一对多或者多对多的关系,一般是一个服务器对应着多个客户 端。客户端通过 socket 连接服务器,服务器要为客户端创建一个单独进程(线程)监听每个 客户端的请求。

3、 创建好连接之后文件就可以通过流的形式传输。linux 内核中为我们提供了两种不同形 式的读写流,包括 read()、write()和 send()、recv()。客户机对文件的查看指令也是通过流传 递给服务器,服务器根据请求类型返回不同相应流。 根据 socket 原理和特点绘画出链接流程图,将客户机与服务器的相互通信划分为不同 的模块,每个模块负责独立的功能项。服务器输入指令管理目录下的文件,create filename 是创建文件命令,rename oldname newname 是删除文命令,delete filename 是删除文件命 令,同时监听着客户端的请求;客户端向服务器发送

4、上传、下载和查看请求,从而得到不 同的相应,包括将文件下载到当前路径下,从当前路径下上传文件给服务器,列出服务器 的文件列表。二、通信原理二、通信原理Linux 是计算机使用的主流操作系统之一,TCP/IP 是广为应用的互联网协议,Linux 为 TCP/IP 网络编程提供了一种网络进程通信机制:套接字接口(Sockets Interface)。以下将介 绍 Linux 环境下套接字的基本概念及编程技术,并结合实例说明在 Linux 下如何用套接字 实现客户机/服务器方式的进程通信。(一)(一)TCP/IPTCP/IP 即传输控制协议/网际协议(Transmission Control Pro

5、tocol/Internet Protocol),是 一个由多种协议组成的协议族,他定义了计算机通过网络互相通信及协议族各层次之间通 信的规范。 TCP 是一种面向连接的、可靠的、双向的通信数据流,说他可靠,是因为他使用 3 段 握手协议传输数据,并且在传输时采用“重传肯定确认”机制保证数据的正确发送:接收 端收到数据后要发出一个肯定确认,而发送端必须要能接收到这个肯定信号,否则就要将 数据重发。在此原理基础之上,设计了基于 Linux 操作系统下 TCP/IP 编程实现文件传输的 实例。我们采用客户机/务器模式通信时,通信双方发送/接收数据的工作 Linux 支持 BSD 的套接字和全部的

6、TCP/IP 协议,是通过网络协议将其视为一组相连 的软件层来实现的。BSD 套接字(BSD Socket)由通用的套接字管理软件支持,该软件是 INET 套接字层,用来管理基于 IP 的 TCP 与 UDP 端口到端口的互联问题。从协议分层来 看,IP 是网络层协议,TCP 是一个可靠的端口到端口的传输层协议,他是利用 IP 层进行 传接报文的;同时也是面向连接的,通过建立一条虚拟电路在不同的网络问传输报文,保Linux 环境下基于 TCP/IP 及 Socket 技术的远程文件传送控制编程报告第 4 页 共 21 页证所传输报文的无丢失性和无重复性。用户数据报文协议(User Datagr

7、am Protocol,UDP)也 是利用 IP 层传输报文,但他是一个非面向连接的传输层协议。利用 IP 层传输报文时,当 目的方网际协议层收到 IP 报文后,必须能够识别出该报文所使用的上层协议(即传输层协 议)。因此,在 IP 报头中,设有一个“协议”域(Protoco1)。通过该域的值,即可判明其上 层协议类型。传输层与网络层在功能上的最大区别是前者提供进程通信能力,而后者则不 能。在进程通信的意义上,网络通信的最终地址不仅仅是主机地址,还包括可以描述进程 的某种标识符。为此,TCP/UDP 提出了协议端口(Protocol Port)的概念,用于标识通信的进 程。例如,Web 服务器

8、进程通常使用端口 80,在/etc/services 文件中有这些注册了的端口 地址。 对于 TCP 传输,传输节点问先要建立连接,然后通过该连接传输已排好序的报文,以 保证传输的正确性。IP 层中的代码用于实现网际协议,这些代码将 IP 头增加到传输数据中, 同时也把收到的 IP 报文正确地转送到 TCP 层或 UDP 层。TCP 是一个面向连接协议,而 UDP 则是一个非面向连接协议,当一个 UDP 报文发送出去后,Linux 并不知道也不去关心 他是否成功地到达了目的主机。IP 层之下,是支持所有 Linux 网络应用的网络设备层,例 如:点到点协议(Point to Point Pro

9、tocol,PPP)和以太网层。网络设备并非总代表物理设备, 其中有一些(例如回送设备)则是纯粹的软件设备,网络设备与标准的 Linux 设备不同,他 们不是通过 Mknod 命令创建的,必须是底层软件找到并进行了初始化之后,这些设备才被 创建并可用。因此只有当启动了正确设置的以太网设备驱动程序的内核后,才会有 /dev/eth0 文件。ARP 协议位于 IP 层和支持地址解析的协议层之间。(二)(二)Socket1、套接字简介 套接字(Socket)是网络通信的基本操作单元,它提供了不同主机间进程双向通信的端点, 这些进程在通信前各自建立一个 Socket,并通过对 Socket 的读/写操

10、作实现网络通信功能。 套接字分为以下 3 种类型。 1) 字节流套接字 这是最常用的套接字类型,TCP/IP 协议簇中的 TCP(Transport Control Protocol)协议 使用此类接口,它提供面向连接的(建立虛电路) 、无差错的、发送先后顺序一致的、包长 度不限和非重复的网络信包传输。 2) 数据报套接字 TCP/IP 协议族中的 UDP(User Datagram Protocol)协议使用此类接口,它是无连接的服 务,以独立的信包进行网络传输,信包最大长度为 32KB,传输不保证顺序性、可靠性和 无重复性,它通常用于单个报文传输或可靠性不重要的场合。 3) 原始数据报套接字 提供对网络下层通讯协议(如 IP 协议)的直接访问,它一般不是提供给普通用户的,主 要用于开发新的协议或用于提取协议较隐蔽的功能。 2、套接字编程方法 这里将分别介绍面向连接协议的字节流套接字与非连接协议的数据报套接字的编程方 法,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号