前阵子要给两台电脑做重要项目文件互备,翻遍全网没找到顺手的工具,飞鸽传书是不错,可惜要收费。无奈之下,用Python撸了个山寨版,500多行代码,工具打包后才11M,不用安装、不用配置,同一局域网内秒连设备,文件/文件夹随便传,文字消息实时聊.
工具完全是按“实用主义”来的,没有多余功能,只留核心需求:局域网设备自动发现、文件/文件夹一键传输、实时文字沟通,无广告、无后门、轻量化,纯本地传输不经过任何第三方服务器,安全又高效,打工牛马必备!
这个工具启动后,会自动扫描局域网内所有运行该工具的设备,主机名+IP地址一目了然,点击就能选中传输对象,不用任何额外配置。
单文件:支持任意大小文件传输;
文件夹:整文件夹一键发送,自动保留原有的目录结构,不用逐个打包压缩。
进度可视化:实时显示传输进度,包括总文件数、当前传输文件、单文件进度,不怕传一半断联,也不用一直盯着等,该摸鱼摸鱼,该写报告写报告,进度条自己会更新。
体积仅11M:打包后是绿色版,双击即可运行,不用安装,U盘里存一份,换电脑也能随时用,出差带个笔记本,跟客户现场传文件也方便;
纯Python编写:我自己用的Windows11,能完美运行;
本地传输:数据只在局域网内流转,重要的工作文件、客户资料不会经过任何第三方服务器。
工具的核心逻辑其实很简单,就是基于Socket实现的:
UDP广播(9999端口):定时发送本机IP、主机名、MAC地址,自动发现在线设备,不用手动配置;
TCP监听(8888端口):同时处理文件传输和文字消息,通过标识区分消息类型(FILE/TEXT),避免冲突;
多线程处理:传输、监听、UI渲染分开线程,不会因为传输大文件导致界面卡顿,这点对公司的老电脑特别友好;
进度实时更新:按字节数计算传输进度,同步到GUI界面,直观可见,不用猜传输到哪一步了。
python
运行
#UDP广播发现设备(不用懂,知道能用就行)
defbroadcast_self(self):
broadcast_sock=socket.socket(socket.AF_INET,socket.SOCK_DGRAM,socket.IPPROTO_UDP)
broadcast_sock.setsockopt(socket.SOL_SOCKET,socket.SO_BROADCAST,1)
whileself.running:
broadcast_data=f"{self.local_hostname}|{self.local_ip}|{self.local_mac}".encode(ENCODING)
broadcast_sock.sendto(broadcast_data,("",BROADCAST_PORT))
time.sleep(BROADCAST_INTERVAL)
defsend_file_to_device(self,target_ip:str,file_path:str):
file_size=os.path.getsize(file_path)
withopen(file_path,"rb")asf:
whilesent_size
data=f.read(BUFFER_SIZE)
client_sock.send(data)
sent_size+=len(data)
self.update_progress((sent_size/file_size)*100)
顶部栏:显示本机信息和在线状态,一目了然,不用额外查询;
左侧:设备列表+搜索框,电脑多的时候可以快速筛选,不用逐个找;
右侧:聊天/传输区域,进度条实时更新,文件默认保存到「下载/飞鸽传书接收」文件夹,不用到处找,符合牛马使用习惯;
功能按钮:就三个核心按钮——发送文件、发送文件夹、发送消息,操作极简,没有多余的复杂功能,上手成本几乎为零,新人来了也能直接用。

团队协作:小团队共享项目资料、安装包、设计图,比共享文件夹简单10倍,所需资料一键传过去,不用逐个发链接,省了不少沟通成本;
家庭场景:家里的电脑和笔记本互传电影、照片,不用插U盘,也不用受微信大小限制,老人也能自己操作,不用麻烦远程指导。
工作干久了,越来越觉得“实用”才是王道——工具不用复杂,能解决问题就行;功能不用多,满足需求就够。工具虽然简陋,但胜在稳定好用。
如果你也是经常需要多设备办公的打工人,不妨试试这个工具~
考虑到大家不是都懂Python,我已经把代码打包成了可执行文件:
✅关注本公众号「工作那点事儿」
✅回复关键词「飞鸽传书」
✅即可获取工具包