| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> python实现文件快传不需要服务器,多线程flask+tkinter+requests+threading -> 正文阅读 |
|
[Python知识库]python实现文件快传不需要服务器,多线程flask+tkinter+requests+threading |
一,程序设计思路文件快传是指一个设备将文件快速传至另一个设备,而这往往需要中间有个服务器做中转,但这也会影响传输速度,其实我们可以不用这个中转站 当我们需要向其他设备传文件时我们的电脑就可以当服务器,向其他设备发送文件,而其他设备当客户端请求服务器 当我们需要接收其他设备传过来的文件时我们用requests请求对方的flask,传输文件 这样一来文件的传输速度就是双方网速的极限了,前提是需要保证您的ip地址可以使用及电脑5080端口不被其他程序使用 二,多线程部分
众所周知tkinter或者flask的使用都会使程序暂停,也就是说一个线程里面不能同时有这俩老虎 所以我们使用多线程来避免这个尴尬,当然tkinter是用户的图形化操作界面,负责接受用户向程序下达的命令,而flask是对用户下达的命令做出响应,这样一来两个线程必须进行通信 三,线程之间的通信问题
我们使用线程锁锁住资源当一个线程更改资源的时候对资源上锁,其他线程需要等待至这个线程完成对程序的更改释放资源后才能对他进行更改,访问资源则不需要锁 四,flask模块的使用
我们提前生成一个字典当点击上传文件的时候将此资源解锁,将用户选择的路径及随机生成的密钥写入字典,然后上锁 当接收端使用requests访问本电脑时在链接里加入密钥,flask访问此字典找出密钥对应的文件路径,返回文件内容? 五,requests的使用接收tkinter传回的参数访问对方的flask接收文件名和文件内容 六,tkinter的使用tkinter界面 ?子窗口界面 ?我们使用text和entry处理程序返回值和用户输入的命令
使用以上代码返回不同的信息 六,程序运行图可以使用本机文件快传也可以使用局域网如果您的ip可以被公网访问则可以实现远程文件快传? 七,程序源代码博客地址:https://blog.csdn.net/beginner2021 源代码下载地址:文件快传(使用tkinter+flask+requests+threading)此文件为使用这些模块的实例程序(加注释)-Python文档类资源-CSDN下载 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/27 2:08:50- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |