1 / 22
文档名称:

双协议实现文件传输.doc

格式:doc   大小:945KB   页数:22页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

双协议实现文件传输.doc

上传人:pppccc8 2020/2/18 文件大小:945 KB

下载得到文件列表

双协议实现文件传输.doc

相关文档

文档介绍

文档介绍:网络程序设计与实践大作业实验报告题目:TCP/UDP双协议实现文件传输学号: XXXXXXXXXX 姓名: ™ 扌旨导教师: ™ 学院: XXXXXXXXXXXXXXXXXXX学校: XXXXXXXXXXXXX 一、 实验目的通过学****实践深入理解TCP/UDP等传输协议,掌握socket网络编程,理解它们的工作机制,并在实验屮实现TCP/UDP双协议传输,通过自己的实现方式保证UDP的可靠传输,并使用进程预分配技术提高服务的性能。二、 实验要求同吋运行基于TCP与UDP的双协议基于UDP协议的可靠传输应用进程预分配技术4•不上传,只下载三、 ,C语言四、 实验设计思路1•进程预分配设计创建一个进程的吋间比较长,如果在接收到客户端请求之后,创建一个子进程来处理,这会影响响应客户机的速度,为解决这个问题,采用一种称为“预创建(perfork)"的技术。服务器事先创建一定数H的子进程,对于TCP连接,ept()从倾听套接字完成连接队列屮接收己建立的客户机连接。对于UD卩情况,由于要实现可靠传输,客户机要向服务器发送的数据报确认信息,这就会使其他进程认为这是一个新的连接,所以在这里我采用信号量机制,使得在一段时间内,只有一个进程在处理UDP连接,只有这个UDP连接处理完成后,其他进程才可以接收UDP连接并进行处理。也就是说,采用进程预分配技术后,可以实现TCP并发服务,UDP循环服务。使用预创建技术的服务器如图lo图1预创建了进稈方式服务器预先创建N个子进程,部分子进程正在处理客户机请求,部分子进程正在等待客户机请求。这种服务器的优点是响应客户机的速度比较快,节省创建子进程的吋间。但缺点是服务器预先估计所需创建的子进程数Fl。如果数H太少,那么多余的客户机讲等待,不能及吋得到服务,而太多乂会浪费系统资源。为了解决上面的问题,服务器父进程可以动态的调整子进程数当空闲子进程数H小于下限吋,父进程创建一些新的子进程;当空闲子进程大于上限吋,父进程终止一些子进程。父进程需要两条消息來管理子进程:子进程接收-•个连接和结束一个连接。当父进程接收的前一种消息时,将检查空闲子进程数H是否小于下限;当父进程接收都后一种消息时,将检查空闲子进程是否大于丄限。为了获得这两种消息,父进程和每个子进程建立一个管道。当子进程接收到--条连接后,向这个管道屮发送一字节消息,内容为1;当子进程处理完一个连接之后,向这个管道发送一个字节消息,。迓才呈弓-状态套按字描述符接收连接:丨 ;u ~子子稈客客八八机机图2动态更改了进稈个数为了管理子进程,定义一个结构child_queue,记录活动子进程数FI,空闲子进程数F1和子进程信息队列。子进程信息队列记录了每个子进程的信息:子进程的进程号,与父进程通信的管道和子进程的状态。子进程状态可能是等待客户机请求(CS_WAITING)或处理客户机请求(CS_PROCESSING)。structchild_queue{intchld_no;intchld_avail;structchild_info{intpid;intpipefd;intstate;〃结构:用于管理子进程〃活动子进程数Fl〃空闲子进程数冃〃子进程信息〃子进程进程号//与子进程通信的管道〃子进程状态}ci[CHILD_NUM_MAX];〃子进程信息数组};服务器一直循环动态管理子进程数FI,知道有SIGINT信号出现(CTRL+C),才Kill所以子进程,退出循环,结束。进程预分配的流程图如图3所示。图3进程预分配流程图子进程处理连接及双协议实现当一个子进程被创建后,它循环等待客户机连接请求,当客户机连接请求到达后,它判断是TCP连接,还是UDP连接。如果是TCP连接,子进程调用tcpfileO函数处理连接请求,在tcpf订e()处理请求过程小,ept()函数从倾听套接字完成连接队列屮接收己建立的连接,如果接收成功则通过管道通知父进程开始处理连接,父进程把它的状态置为CS_PROCESSING(处理客户机请求),然后判断空闲子进程数H是否小于下限,如果小于,则创建一定数H新的子进程。当连接处理完成后,子进程通过管道通知父进程连接处理完成,父进程把它的状态置为CSWAITING,然后判断空闲子进程数H是否超过上限,如果超过,Kill-定数H的空闲子进程。而处理此次连接的子进程处理完成后继续等待新的连接。如果是UDP连接子进程先判断是否有其他进程正在调用udpfile()函数处理UDP连接,如果有,则说明这个连接有可能是客户端发送给服务器的数据报确认信息,那么子进程继续等待新的连接。如果没有其他子进程正在调用udpfileO函数处理udp连接,则对信号量执行P操作,然后调用u

最近更新

油茶种仁糖酵解途径解析及醛缩酶基因家族功能.. 2页

油水井套管探伤应用关键技术研究中期报告 2页

油库风险控制及评价研究的开题报告 2页

选修课社会调查研究报告 27页

河南省土地流转收入对农村养老保障的贡献研究.. 2页

2024年我的校园生活作文 3页

河北省农牧生产体系氮磷养分流动特征及调控途.. 2页

河北民歌《小放牛》研究开题报告 2页

沥青路面废弃物综合再生方式的技术适用性研究.. 2页

2024年我的家话题作文 6页

虎门赤岗前期研究报告 35页

蔬菜种植小课题研究报告 31页

2024年我的叔叔于勒作文(15篇) 16页

舆论议题传播效果研究报告 30页

自动驾驶路径规划研究报告 27页

家长会的演讲稿 3页

汽车声品质试验及客观评价方法研究的开题报告.. 2页

轻松解决瞬时性问题 9页

翅果油种植可行研究报告 27页

家长会家长发言稿精选15篇(全文共35721字) 4页

汶川地震遗产研究的开题报告 2页

污泥堆肥过程中抗生素抗性基因的动态变化及微.. 2页

编制可行性研究报告 37页

酸奶制作及营养成分分析课件 21页

乡镇卫生院常见病门诊和住院诊疗规范 66页

七年级下血液测试 1页

苏教版数学四年级下册平移旋转和轴对称练习题.. 2页

基于plc的多路称重系统设计毕业论文 49页

奥沙利铂联合卡培他滨治疗胃癌术后淋巴转移的.. 3页

弟子规-功过格-可打印(欢迎传播) 14页