得,今天就来聊聊我之前折腾“screentoclient”这档子事儿的经历。这词儿听着可能有点怪,说白,就是想把一台电脑屏幕上的东西,弄到另一台设备(也就是客户端)上去看。
为啥要搞这个?
起因挺简单的。我有台老电脑,性能不咋地,但就放那儿跑点小程序或者挂个下载啥的。有时候我就想在客厅用笔记本或者平板看看那台老电脑的屏幕,确认下任务跑完没,或者有没有啥报错。直接跑过去看,又懒得动弹。
市面上不是没有现成的工具,像什么远程桌面,各种远程控制软件,我都瞅过。但有时候感觉有点“杀鸡用牛刀”。我就是想简单看看屏幕,不需要控制,也不想装一堆可能后台一直跑的服务。有时候就是手痒,想自己捣鼓捣鼓,看看能不能弄个最简单的实现。
动手开搞
我的思路很简单:
- 第一步:抓屏幕。得先把老电脑屏幕上的图像给捕获下来。我没想搞太复杂的,就想着能不能定期截个图。
- 第二步:传出去。抓到的图得想办法传给我的笔记本或平板。
- 第三步:显示出来。客户端这边得能接收并显示这些图片。
说干就干。我先是在老电脑上找点能截图的法子。一开始想着用系统自带的截图,但那样得手动,不方便。后来就去找些能用代码控制的截图方法,不需要多高级,能定时抓个全屏或者窗口就行。
接着就是怎么把图传过去。我想到的最土的办法,就是在老电脑上跑一个极其简单的网页服务。这个服务啥也不干,就把刚刚截下来的图,作为一个图片文件放在那儿,给个固定的访问地址。每次截图后,就更新这个图片文件。
客户端那边就好办。直接用浏览器打开那个老电脑上简单网页服务的地址。为能看到“实时”画面(是不断刷新的图片),我写一小段简单的网页代码,让它每隔一小段时间(比如一秒钟)就重新加载一次那个图片。这样看起来就像视频一样,虽然是“幻灯片”级别的。
中间的折腾
理想很丰满,现实嘛总得折腾几下。
是卡顿。刚开始我设置的刷新频率太高,截图、传图、显示,一整套下来,老电脑有点吃不消,网络传输也慢,结果就是客户端看到的画面卡得不行,延迟也高。
然后是图片质量和大小。截全屏的图,文件挺大的,传输起来慢,也费资源。后来我就想,能不能只截我关心的那个程序窗口?或者降低图片的质量来减少文件大小?试试,效果确实好点,虽然画面糙点,但流畅度上来。
网络问题。有时候家里网络一波动,浏览器那边图片就加载不出来,或者半天刷不出来。这个没啥太好的办法,只能接受这个“简陋”方案带来的不稳定。
的结果
最终,我算是搞出来一个非常非常基础的“screentoclient”方案。就是在老电脑上跑个小脚本,定时截图(或者截窗口),然后通过一个极简的本地网页服务把图片暴露出来。在我的笔记本或平板上,用浏览器访问那个地址,网页自动刷新,就能看到一个“伪实时”的画面。
这玩意儿肯定比不上专业的远程桌面软件,功能单一,性能也一般。但是,对于我当时那个“就想偶尔瞟一眼屏幕”的需求来说,足够。而且关键是,这是我自己一步步搭起来的,过程挺有意思,也算是一次实践记录。
所以你看,有时候不一定非要追求最高级、最全面的工具,根据自己的实际需求,动手搞点简单的东西,也能解决问题,还能顺便练练手,挺