- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
摘要
线程(thread)技术早在60年代就被提出,但真正应用线程到操作系统中去,是在80年代中期。 为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?
使用多线程的理由之一是和进程相比,它是一种非常节俭的多任务操作方式。在Linux系统下,启动一个新的进程必须分配独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段。而运行于一个进程中的多个线程,它们之间使用相同的地址空间,共享大部分数据,启动一个线程所花费的空间远远小于进程所花费的空间,而且,线程间彼此切换所需的时间也远远小于进程间所需要的时间。
使用多线程的理由之二是线程间方便的通信机制。对不同进程来说,它们具有独立的数据空间,要进行数据的传递只能通过通信的方式进行,这种方式费时且很不方便。由于同一进程下的线程之间共享数据空间,所以一个线程的数据可以直接为其它线程所用,这样快且方便。
在HYPERLINK /view/3314.htm \t _blank 计算机中,凡是提供HYPERLINK /view/133203.htm \t _blank 服务的一方我们称为HYPERLINK /view/1087294.htm \t _blank 服务端(Server),而接受服务的另一方我们称作客户端(Client)。不过客户端及伺服端的关系不见得一定建立在两台分开的机器上,提供服务的伺服端及接受服务的客户端也有可能都在同一台机器上,这样在同一台机器上就同时扮演伺服端及客户端。
线程间方便的通信机制可以使得在我们在服务端和客户端方便的进行通信传输与各种操作,可以通过运用多线程机制方便实现上传、下载文件;增加、删除用户;以及在服务端进行文件的管理。
关键字:多线程、socket通信、服务器和客户端
·1需求分析
这次课程设计的要求是在以Linux为内核的操作系统下,实现多线程文件传输系统功能模块。系统模块分为服务器和客户端两部分,客户端实现对文件的上传、下载和查看服务器默认路径下的文件列表;服务器可以对文件进行管理操作,包括创建、删除和重命名等。
多线程文件传输是一种一对多或者多对多的关系,一般是一个服务器对应着多个客户端。客户端通过socket连接服务器,服务器要为客户端创建一个单独进程(线程)监听每个客户端的请求。
创建好连接之后文件就可以通过流的形式传输。linux内核中为我们提供了两种不同形式的读写流,包括read()、write()和send()、recv()。客户机对文件的查看指令也是通过流传递给服务器,服务器根据请求类型返回不同相应流。
根据socket原理和特点绘画出链接流程图,将客户机与服务器的相互通信划分为不同的模块,每个模块负责独立的功能项。服务器输入指令管理目录下的文件,create filename是创建文件命令,rename oldname newname是重命名文命令,delete filename 是删除文件命令,同时监听着客户端的请求;客户端向服务器发送上传、下载和查看请求,从而得到不同的相应,包括将文件下载到当前路径下,从当前路径下上传文件给服务器,列出服务器的文件列表。
·2 socket通信原理
国际标准化组织(ISO)在1978年提出开放系统互连参考模型(OSI:open system interconnection reference mode),该模型是设计和描述网络通信的基本框架。OSI采用分层的额结构化技术将通信网络分为7层,从低到高为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
TCP/IP参考模型是由美国国防部创建,且发展至今最成功的通信协议模型,与OSI模型对应,它将网络功能分为4层,包括网络接口层、网络层、传输层和应用层,每一层都有对应的协议。在传输层的主要协议是TCP协议和UDP协议。
socket连接就是基于TCP协议。TCP是一种可靠地数据传输协议。
socket是一种套接口,它把网络地址和端口号信息放在一个结构体中,也就是套接字地址结构。
结构图如下:
套接口与ip、端口号的关系
套接口与ip、端口号的关系
套接口
22
9999
22 9999
Ip地址
端口号
通用套接口地址数据结构定义在sys/socket.h头文件中,形式如下:
struct sockaddr
{
uint8_t sa_len;
sa_family_t sa_family;
char sa_data[14];
};
IPv4套接口地址数据结构以socketaddr_in命名,定义在netinet/in.h头文件中,形式如下:
struct socketaddr_in
{
unit8_t sin_l
您可能关注的文档
- 触发器的电路结构与工作原理.ppt
- 2017年银行培训新员工合规内控培训教程.ppt
- 2017年幼儿园班务工作计划.doc
- 2017年幼儿园园务工作计划.docx
- 触摸春天 教师.ppt
- 2017年运营部工作计划.docx
- photoshop基础教程教学20647.ppt
- 触诊 - 精品课程 - 福建农业职业技术学院.ppt
- 传感器的工作原理及其应用.ppt
- 传感器在农业中的应用D.ppt
- 《通讯三篇》群文阅读实录--统编版高中语文必修上册 .pdf
- 2024-2025学年福建省泉州市晋江市侨声中学高二(上)期中物理试卷(含答案) .pdf
- 芬兰跨学科建设中现象式学习的实践及其启示 .pdf
- 康得新集团上市公司信息披露违规问题处罚与公司治理分析8000字.pdf
- 2024-2025年医学专业(护理专业三基三严)资格及理论知识考试题及答案 .pdf
- 中医养生保健服务(非医疗)技术操作规范足浴(2024年版) .pdf
- 2025年全国起重机司机-特种设备操作Q2证考试题库(含答案) .docx
- 2025年全国高处吊篮安装拆卸工考试题库(含答案) .docx
- 2024年山东德州初中学业水平考试历史试卷真题(含答案详解) (2).pdf
- 【人教版高中数学精讲精练必修一】高一上学期期中考测试卷(基础)(解析版) .pdf
文档评论(0)