精明的程序员——Linux的远程控制


精明的程序员——Linux的远程控制
 
今天本来在写一个捕捉Linux中的键鼠消息的程序。查阅资料,看到了如下信息:
 
键鼠设备(包括touch等设备)事件以文件的形式存在/dev/input/event[n]中;其中n等于多少,可以通过cat /proc/bus/input/devices得知。读取这些文件,就可以获得键盘与鼠标触发的消息,反之,写入这些文件就可以模拟键盘与鼠标的输入动作。
 
既然是文件,那么通过网络把一台机器的event传给另一台机器会有什么效果呢?于是,抱着试试看的心态就做了一个小实验。
 
server端:
 
nc -l 8888 > /dev/input/event2 (我的机器event2是鼠标)
 
client端:
 
nc SERVER_IP 8888 < /dev/input/event2
 
实验完毕。效果就是一台机器的鼠标(或键盘)可以控制另一台机器,感觉就像local的操作,非常棒!
 
之前用过RDP,之前用过USBIP。今天才发现原来Linux原生就可以做到远程控制,不需要装其他的软件。
 
如此强大的功能,如此方便的实现,不禁感慨Linux的精妙之处。这个功能主要得益于:
 
1. Linux中一切皆文件的原则;
 
2. 重定向的强大功能;
 
3. netcat这个网络工具中的瑞士军刀。

相关内容

    暂无相关文章