经常在电脑端与手机端传图片。虽然电脑端可以通过Web服务上传,但又要开浏览器,又要输入密码,还要选择目录,选完之后手机端还要移动。懒人想:是不是能有一种方便的工具呢?
-
方便电脑端传到手机端
(1). 电脑端常驻桌面顶端,拖动图片即上传。 (2). 拖上去即使用命令行croc准备发送。
(3). 手机端进入目录自行croc接收 -
方便手机端上传到电脑端
(1). 手机端croc发送
(2). 电脑端程序信息提示,自行接收。
看起来给croc套个壳就基本完成。
用最简单的办法先解决:
- 服务端用个脚本,点击则开始传送桌面所有png图片(我总是把图截到这里),传完后移动到临时文件夹。
- 客户端(手机),将原来hugo的脚本工具添加功能 blog file 10111-abc,自动搜索关联文件目录,跳转到此目录开始接收图片文件。
当然,高级一点,就是手机自动在后台随时准备接收图片。当发现图片时,自动接收,并根据文件名移动到相应目录。(博客中的图片文件总是按文件名规则命名的)
这样,就实现了只需要在服务端点击一个脚本即完成传输图片的操作。
再自动一点,自动搜索桌面上有相关规则的png图片,发现则上传。
由此我想到一个问题:croc是否可以仅在内网使用,毕竟有些网络环境完全禁止了外网。而利用croc比较无感知:一人发,一人收,不管是谁,不管IP在哪里。虽然有docker版的中继服务器,但太黑箱了,也不知道是否不需要外网通信。有机会再试。
- 建立中继: croc relay (可以就这么简单,1.80就是它的IP)
- 发送: croc –relay “192.168.1.80:9009” send file.txt
- 接收:croc –relay “192.168.1.80:9009”
测试结果:内网可用,无需外网参与。
使用Godot完成了所需功能(暂时只是服务端发送)
桌面上那个游动的鱼就是服务程序,拖动文件到它上面,可以调用croc,发送文件。
动画中的命令行窗口,是演示接收端。
界面拖动代码需优化。
生成可执行文件稍微大了点:41MB。内存占用较大640MB。估计图片有点大,没有裁好再载入。
看个演示动画
- 更改了一下动画:不传输文件时,慢速;传输文件时,快速。
- 稍优化了一下,文件依然38MB。用zip压缩自运行,文件16MB。
- 内存占用依然不小620MB左右,占用CPU不高,一点GPU。但这个内存量,对我习惯了Go的小容量,依然显得不友好。
- 允许命令行第一个参数设置发送密码。
2022.10.22
- 优化了拖动,代码61行。
- 添加后台接收文件功能
- 文件大小依然38MB左右,内存占用依然620MB。
- 修改了程序图标
- 发现动画(图片)有边界显示不完美,找到好资源再修改。
- 测试Godot4未果,部份函数有变。
2022.10.24
- 代码行数230行,包括注释
- 内存占用250MB,应该还有改进空间,对Godot的配置不够熟悉。不过基本可以接受了。
- 允许自定义中继
- Linux下修改,编译结果尚未测试
- 允许自定义动画