- 1、本文档共24页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux下基于socket的文件传输程序设计
课 程 设 计
课程名称Linux下基于socket的文件传输程序设计
学生学院 信息工程学院
专业班级
学 号
学生姓名
指导教师
2013 年 12月 27日
引言
在互联网已经基本普及的情况下,人们越来越依赖于信息网络。因为互联网的使用,我们可以大大的节省了我们的时间及成本。所以文件、信息的传输已经是人们生活中不可缺少的东西。而现在主流的应用软件都是基于WINDOWS平台上开发运行的。
Linux操作系统本身具有非常高的安全性,不易感染病毒(这是WINDOWS系统所不能比拟的),而且可移植性强,应用于大多数的服务器。所以我们应该多开发出适合人们使用的应用软件,使得Linux更加好的为广大网民使用以保障自身的安全性。
本课设主要介绍在Linux下的文件传输原理及功能,虽然不能与主流传输软件的功能相比,但是却是占用的资源比它要少
·1课设背景分析
这次课程设计的要求是在以Linux为内核的操作系统下,实现多线程文件传输系统功能模块。系统模块分为服务器和客户端两部分,客户端实现对文件的上传、下载和查看服务器默认路径下的文件列表;服务器可以对文件进行管理操作,包括创建、删除和重命名等。
多线程文件传输是一种一对多或者多对多的关系,一般是一个服务器对应着多个客户端。客户端通过socket连接服务器,服务器要为客户端创建一个单独进程(线程)监听每个客户端的请求。
创建好连接之后文件就可以通过流的形式传输。linux内核中为我们提供了两种不同形式的读写流,包括read()、write()和send()、recv()。客户机对文件的查看指令也是通过流传递给服务器,服务器根据请求类型返回不同相应流。
根据socket原理和特点绘画出链接流程图,将客户机与服务器的相互通信划分为不同的模块,每个模块负责独立的功能项。服务器输入指令管理目录下的文件,create filename是创建文件命令,rename oldname newname是删除文命令,delete filename 是删除文件命令,同时监听着客户端的请求;客户端向服务器发送上传、下载和查看请求,从而得到不同的相应,包括将文件下载到当前路径下,从当前路径下上传文件给服务器,列出服务器的文件列表。
·2网络通信原理及socket简介
2.1网络通信原理(TCP)
国际标准化组织(ISO)在1978年提出开放系统互连参考模型(OSI:open system interconnection reference mode),该模型是设计和描述网络通信的基本框架。OSI采用分层的额结构化技术将通信网络分为7层,从低到高为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
TCP/IP参考模型是由美国国防部创建,且发展至今最成功的通信协议模型,与OSI模型对应,它将网络功能分为4层,包括网络接口层、网络层、传输层和应用层,每一层都有对应的协议。在传输层的主要协议是TCP协议和UDP协议。
socket连接就是基于TCP协议。TCP是一种可靠地数据传输协议。
它为应用程序提供可靠的通信连接。适合于一次传输大批数据的情况。并适用于要求得到响应的应用程序并通过3次握手。
其数据包头格式为:
2.2 socket简介
在Linux中的网络编程是通过socket接口来进行的。socket是一种特殊的I/O接口,它也是一种文件描述符。它是一种常用的进程之间通信机制,通过它不仅能实现本地机器上的进程之间的通信,而且通过网络能够在不同机器上的进程之间进行通信。
每一个socket都用一个半相关描述{协议、本地地址、本地端口}来表示;一个完整的套接字则用一个相关描述{协议、本地地址、本地端口、远程地址、远程端口}来表示。socket也有一个类似于打开文件的函数调用,该函数返回一个整型的socket描述符,随后的连接建立、数据传输等操作都是通过socket来实现的。
socket是一种套接口,它把网络地址和端口号信息放在一个结构体中,也就是套接字地址结构。
结构图如下:
通用套接口地址数据结构定义在sys/socket.h头文件中,形式如下:
struct sockaddr
{
uint8_t sa_len;
sa_family_t sa_family;
char sa_data[14];
};
IPv4套接口地址数据结构以socketaddr_in命名,定义在netinet/
您可能关注的文档
- 碧华邻临时用电方案.doc
- 硬件课程设计.doc
- [中学联盟]福建省大田县第四中学北师大版七年级数学上册61数据的收集 课件(共24张PPT).ppt
- 碧桂园.ppt
- LED的发光原理及特牲.ppt
- [中考复习方案第3篇现代文阅读(一)(106张幻灯片).ppt
- 碧桂园天麓湾项目二期工程工法样板方案.doc
- 硬件在环dSPACE培训.ppt
- [创新设计]2016年高考政治(必修2)第一轮总复习课件:课时5 我国政府是人民的政府.ppt
- LED集中供电系统说明书.doc
- 2024-2025学年青海省部分名校高一(上)期末数学试卷(含答案).pdf
- 2024-2025学年山东省东营市高二上学期期末质量监测数学试卷(含答案).pdf
- 2024-2025学年陕西省西安市高一(上)期末数学试卷(含答案).pdf
- 2024-2025学年陕西省汉中市普通高中十校联盟高二上学期期末考试数学试卷(含答案).pdf
- 2024-2025学年陕西省西安市庆安高级中学高一(上)期末数学试卷(含答案).pdf
- 2024-2025学年上海市黄浦区高二上学期期终调研测试数学试卷(含答案).pdf
- 2024-2025学年上海市静安区风华中学高二(上)期末数学试卷(含答案).pdf
- 2024-2025学年湖南省长沙市浏阳市高一(上)期末数学试卷(含答案).pdf
- 酒店筹建阶段的管理重点之十一.pdf
- 2024-2025学年上海市浦东新区高二上学期期末教学质量检测数学试卷(含答案).pdf
文档评论(0)