Advertisement

Python(基于TCP)下的文件下载服务

阅读量:

这里写目录标题

  • 规定
    • 理念
    • 程序代码
    • 验证
    • 补充内容

要求

客户端向服务器提交所需下载的文件名称,服务器随后将匹配的文件内容传输至客户端,并由客户端将接收到的数据保存至本地存储设备。
实现该过程的方式包含以下三种:
(1) 单线程处理模式
(2) 多线程处理模式
(3) 异步通信机制(本方案中使用的是poll池技术)

思路

单线程:1、达成客户端与服务端之间的通信连接;2、在建立连接的前提下,用户将文件名传递至服务器端,服务器依据该文件名在可下载目录中查找对应的文件(由于存在可能失败的情况,因此该操作被置于try语句块中),若成功匹配,则发送由固定长度为10字节的头部信息与文件二进制流拼接而成的字符串,否则发送0;3、客户端首先接收前10字节的内容,这部分数据表示文件的大小,若数值为0则表明目标文件不存在;随后通过循环持续接收长度为MAX_BYTES的二进制数据流,并将其存储至content变量中,直至所有数据接收完毕后,再将content内容进行保存(即完成封帧操作)。
多线程或异步:在单线程代码实现的基础上,将**可能引发阻塞的操作如IO相关处理(在此场景中即为传输文件二进制内容时产生的阻塞)**封装至独立的方法函数中,从而便于后续创建并调用多线程(异步)执行方式

源码

s

全部评论 (0)

还没有任何评论哟~