Python(基于TCP)下的文件下载服务
发布时间
阅读量:
阅读量
这里写目录标题
- 规定
- 理念
- 程序代码
- 验证
- 补充内容
要求
客户端向服务器提交所需下载的文件名称,服务器随后将匹配的文件内容传输至客户端,并由客户端将接收到的数据保存至本地存储设备。
实现该过程的方式包含以下三种:
(1) 单线程处理模式
(2) 多线程处理模式
(3) 异步通信机制(本方案中使用的是poll池技术)
思路
单线程:1、达成客户端与服务端之间的通信连接;2、在建立连接的前提下,用户将文件名传递至服务器端,服务器依据该文件名在可下载目录中查找对应的文件(由于存在可能失败的情况,因此该操作被置于try语句块中),若成功匹配,则发送由固定长度为10字节的头部信息与文件二进制流拼接而成的字符串,否则发送0;3、客户端首先接收前10字节的内容,这部分数据表示文件的大小,若数值为0则表明目标文件不存在;随后通过循环持续接收长度为MAX_BYTES的二进制数据流,并将其存储至content变量中,直至所有数据接收完毕后,再将content内容进行保存(即完成封帧操作)。
多线程或异步:在单线程代码实现的基础上,将**可能引发阻塞的操作如IO相关处理(在此场景中即为传输文件二进制内容时产生的阻塞)**封装至独立的方法函数中,从而便于后续创建并调用多线程(异步)执行方式
源码
s
全部评论 (0)
还没有任何评论哟~
