1 / 17
文档名称:

双协议实现文件传输.doc

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

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

分享

预览

双协议实现文件传输.doc

上传人:260933426 2017/9/10 文件大小:1.15 MB

下载得到文件列表

双协议实现文件传输.doc

相关文档

文档介绍

文档介绍:网络程序设计与实践
大作业实验报告
题目:TCP/UDP双协议实现文件传输
学号: xxxxxxxxxx
姓名: xxx
指导教师: xxx
学院: xxxxxxxxxxxxxxxxxxx
学校: xxxxxxxxxxxxx
实验目的
通过学习实践深入理解TCP/UDP等传输协议,掌握socket网络编程,理解它们的工作机制,并在实验中实现TCP/UDP双协议传输,通过自己的实现方式保证UDP的可靠传输,并使用进程预分配技术提高服务的性能。
二、实验要求



,只下载
三、实验平台与语言
Linux ,C语言
四、实验设计思路

创建一个进程的时间比较长,如果在接收到客户端请求之后,创建一个子进程来处理,这会影响响应客户机的速度,为解决这个问题,采用一种称为“预创建(perfork)”的技术。服务器事先创建一定数目的子进程,对于TCP连接,ept()从倾听套接字完成连接队列中接收已建立的客户机连接。对于UDP情况,由于要实现可靠传输,客户机要向服务器发送的数据报确认信息,这就会使其他进程认为这是一个新的连接,所以在这里我采用信号量机制,使得在一段时间内,只有一个进程在处理UDP连接,只有这个UDP连接处理完成后,其他进程才可以接收UDP连接并进行处理。也就是说,采用进程预分配技术后,可以实现TCP并发服务,UDP循环服务。使用预创建技术的服务器如图1。
图1 预创建子进程方式
服务器预先创建N个子进程,部分子进程正在处理客户机请求,部分子进程正在等待客户机请求。
这种服务器的优点是响应客户机的速度比较快,节省创建子进程的时间。但缺点是服务器预先估计所需创建的子进程数目。
如果数目太少,那么多余的客户机讲等待,不能及时得到服务,而太多又会浪费系统资源。
为了解决上面的问题,服务器父进程可以动态的调整子进程数目,当空闲子进程数目小于下限时,父进程创建一些新的子进程;当空闲子进程大于上限时,父进程终止一些子进程。父进程需要两条消息来管理子进程:子进程接收一个连接和结束一个连接。当父进程接收的前一种消息时,将检查空闲子进程数目是否小于下限;当父进程接收都后一种消息时,将检查空闲子进程是否大于上限。为了获得这两种消息,父进程和每个子进程建立一个管道。当子进程接收到一条连接后,向这个管道中发送一字节消息,内容为1;当子进程处理完一个连接之后,向这个管道发送一个字节消息,。
图2 动态更改子进程个数
为了管理子进程,定义一个结构child_queue,记录活动子进程数目,空闲子进程数目和子进程信息队列。子进程信息队列记录了每个子进程的信息:子进程的进程号,与父进程通信的管道和子进程的状态。子进程状态可能是等待客户机请求(CS_WAITING)或处理客户机请求(CS_PROCESSING)。
struct child_queue{ //结构:用于管理子进程
int chld_no; //活动子进程数目
int chld_avail; //空闲子进程数目
struct child_info{ //子进程信息
int pid; //子进程进程号
int pipefd; //与子进程通信的管道
int state; //子进程状态
}ci[CHILD_NUM_MAX]; //子进程信息数组
};
服务器一直循环动态管理子进程数目,知道有SIGINT信号出现(CTRL+C),才Kill所以子进程,退出循环,结束。进程预分配的流程图如图3所示。
图3 进程预分配流程图

当一个子进程被创建后,它循环等待客户机连接请求,当客户机连接请求到达后,它判断是TCP连接,还是UDP连接。如果是TCP连接,子进程调用tcpfile()函数处理连接请求,在tcpfile()处理请求过程中,ept()函数从倾听套接字完成连接队列中接收已建立的连接,如果接收成功则通过管道通知父进程开始处理连接,父进程把它的状态置为CS_PROCESSING(处理客户机请求),然后判断空闲子进程数目是否小于下限,如果小于,则创建一定数目新的子进程。当连接处理完成后,子进程通过管道通知父进程连接处理完成,父进程把它的状态置为CS_WAITING,然后判断空闲子进程数目是否超过上限,如果超过,Kill一定数目的空闲子进程。而处理此次连接的子进程处理完成后继续等待新的连接。如果是UDP连接子进程先判断是否有其他进程正在调用udpfile()函数处理UDP连接,如果有,则说明这个连接有可能是客

最近更新

2025年白露祝福短信 7页

2025年四川华新现代职业学院单招职业适应性测.. 62页

2025年农林牧渔专用仪器仪表行业分析报告及未.. 5页

2025年四川卫生康复职业学院单招职业适应性测.. 62页

2025年公司年度经营计划书 8页

2025年上学期高一年级物理期中试题 27页

2025年白酒销售员的销售经验分享 17页

2025年白落梅经典散文 6页

轴棱锥相位随机调制产生无衍射散斑的方法及应.. 3页

2025年四川国际标榜职业学院单招职业倾向性测.. 61页

2025年四川国际标榜职业学院单招职业技能测试.. 62页

2025年四川国际标榜职业学院单招职业技能测试.. 61页

2025年白居易《惜牡丹花》全诗翻译赏析 4页

2025年四川国际标榜职业学院单招职业适应性测.. 62页

2025年四川城市职业学院单招职业技能测试题库.. 61页

2025年四川工业科技学院单招职业技能测试题库.. 64页

2025年瘗旅文原文翻译及赏析 12页

2025年痛苦的作文(汇总篇) 10页

轨道车辆螺栓拧紧特性分析 3页

2025年病危通知汇总5篇 6页

2025年四川工商职业技术学院单招职业适应性测.. 62页

轧制油乳化液的分析与研究 3页

2025年疯狂的一天作文(汇编7篇) 6页

车载式矫正装置的设计及应用 3页

车身修复中连续点焊技术运用 3页

2025年四川希望汽车职业学院单招职业技能测试.. 61页

2025年四川希望汽车职业学院单招职业适应性测.. 62页

2025年畜牧兽医毕业实习报告 11页

2025年留恋母校作文(精选28篇) 20页

三菱电机SHV130F双转子压缩机的技术优势 2页