@IT·互联网程序员

把手机变成电脑的移动触控板 (一)

2016-07-24  本文已影响3222人  塘泥

手机控制电脑鼠标,应用市场上已经有许多成熟的应用,但是我还是想自己来造个轮子。代码在 Github,欢迎star。

需求场景

如果你感受过南方冬天的魔法攻击,就会知道,在不开空调的湿冷的晚上,即使缩在被窝里,电脑摆在床上小桌,依然不想把手拿出来去碰鼠标。最初想做这个小工具,出发点就是自己的这个需求。
如今虽身在帝都,但最近流行的“葛优躺”又让我对这个工具有了需求——不想抬起手来去摸桌上的鼠标。果然懒才是人类的第一生产力。

简介

原理很简单:整个工具包含手机端和电脑端两个部分。手机端应用把手机上的触控滑动等动作转换成预先约定好的格式的数据,通过 Socket 连接发送到电脑,电脑端的程序解析出数据中的控制信息,相应的控制鼠标的点击、移动等。不需要连接到internet,只需要电脑和手机在同一个局域网内,在这个场景下,通常就是指连接到同一个WIFI。
目前电脑端用Java实现,手机端暂时只有Android版。欢迎有兴趣的同学贡献其他平台、其他实现。

流程

大概分为三步: 互相发现、连接并收发控制数据、断开连接。

  1. 首先,电脑端(server)启动后就开始监听一个预先约定好的组播地址1端口A,等待手机端(client)发来的预先约定好格式的挥手信息
  2. 手机端程序启动后就往这个预先约定好的组播地址1端口A发送一个挥手信息,比如“hi_i_am_client”,然后在地址1端口B等server回过来的挥手信息。
  3. sever收到client挥手信息后,在地址1端口B回一句“hi_i_am_server”。
  4. client收到server的挥手信息后,可以从数据报中得到server的ip,这样client就知道了server的ip,可以用作后续建立Socket连接。发现流程完毕。

PS

现在的发现流程虽然是自动化的,但是依赖于server和client的启动顺序。正考虑加入另一种方式:server端把自己的ip地址和一些其他的约定信息生成一个二维码,手机端扫一扫就可以连接上了。等有时间把这个实现了。

PPS

扫码连接已实现,见 **把手机变成电脑的移动触控板 (二) **

上一篇 下一篇

猜你喜欢

热点阅读