局域网文件传输工具

2020-12-04 09:47:30 +08:00
 machengim

各位好,我做了一个局域网文件 /文件夹传输工具,工作方式参考了 send-anywhere,发送端生成一个接收码,接收端输入接收码接收文件,不过只用于局域网,所以也不需要互联网支持。语言是 rust 。已经做了主流操作系统的 release 包。新手一枚,不知道这东西有没有用(除了我自己),也不知道做的怎么样,请大神批评指正。

https://github.com/machengim/isend

6873 次点击
所在节点    分享创造
25 条回复
cctv1005s927
2020-12-04 10:20:15 +08:00
速度呢?有相关的指标吗
b1u2g3
2020-12-04 10:44:47 +08:00
开的是什么端口?
machengim
2020-12-04 11:42:11 +08:00
@cctv1005s927 感谢指教,刚才测试了一下,发现了一个问题:同样文件发送端和接收端互换的话速度差距很大,反复测试多次,很稳定。很奇怪。

Mac -> Linux: 12MB/s
Linux -> Mac: 3MB/s
Linux -> Windows: 4MB/s
Windows -> Linux: 12MB/s
f6x
2020-12-04 11:43:18 +08:00
局域网文件传输工具 ~= 病毒传播工具
machengim
2020-12-04 11:45:56 +08:00
@b1u2g3 先打开一个 UDP 端口用来监听和发送广播,建立 TCP 连接后关闭;另一个 TCP 连接传送文件。端口号目前是系统分配的。
JustSong
2020-12-04 12:19:28 +08:00
我个人感觉写成 HTTP 服务的形式可能更好用一些,Go 版本,供参考: https://github.com/songquanpeng/lan-share-go
yingfengi
2020-12-04 12:38:34 +08:00
呃。。。smb 之类的不香吗
loli
2020-12-04 12:43:56 +08:00
@yingfengi
我也奇了怪,好像从没人推荐过 smb.
这个倒还好,起码是多平台支持.
好多要在 windows 上实现这功能的人非要推荐什么 ftp,webdav 。什么小巧,一行代码。自带的不香吗?权限控制,操作便捷,目录管理。速度真没想得那么慢。
machengim
2020-12-04 13:31:00 +08:00
@loli 我也试过 smb,不过感觉在 linux 下配置有点费劲,每次都要查攻略,后来反而是 dropbox 用的多。这个小工具我现在就是用做 dropbox 的补充的,体积大或者不必保存到 dropbox 里的文件。
AoTmmy
2020-12-04 13:33:43 +08:00
推荐 chfs,非常方便
niubee1
2020-12-04 13:36:46 +08:00
python -m http.server
machengim
2020-12-04 13:39:54 +08:00
@AoTmmy 给个链接看看?
machengim
2020-12-04 13:42:52 +08:00
@niubee1 也用过,不过感觉命令行更快一点。还有就是也在考虑一些后续功能比如传输完成自动关机之类的。
imn1
2020-12-04 14:08:48 +08:00
这个速度很低啊,我自己用 ftp 可以上 100MB/s,某些情况还要限速呢 —— 某些情况达到 80+MB/s 时,win 这边写会卡,所以 win 这边要限 50MB/s 进入
我也发现系统之间速度不同,linux 和 win 之间,就算不限速,ftp 传同一个大文件双向速度不同,搞不清原因

题外
ftp 不方便的地方是权限,不能传随意文件,也只能传到预设的 ftp 目录,还需要一些挪动操作
当然,权限是合理的管理规则,我只是纯个人设备间传文件,觉得如果有无需权限管理的工具更方便些
vigack
2020-12-04 14:09:58 +08:00
速度一般啊,为啥不用 bit sync
machengim
2020-12-04 14:41:32 +08:00
@imn1 速度可能跟路由器有关?我刚试了往虚拟机里传文件,速度也在 100MB/s 左右。主机是 Linux,客机是 windows 。但是两个方向的速度差异我确实不理解。
AoTmmy
2020-12-04 15:19:19 +08:00
machengim
2020-12-04 16:51:38 +08:00
@AoTmmy 好的,谢谢
ZiLong
2020-12-04 20:25:23 +08:00
没有一步到位的,我觉得可以慢慢优化,对于速度,可以用 wireshark 抓包看看
machengim
2020-12-04 20:40:01 +08:00
@ZiLong 我发现速度慢不是程序造成的。我用 npm 和 python 的 http server 还有 iperf3 都做了速度测试,得到了一样的结果:从 mac 连接 linux 是 12MB~15MB/s,从 linux 连 mac 是 2 ~ 3MB/s 。非常诡异。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/731986

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX