关注《一碳科技》有更多干货等着你哦!

远控鼠标

远控鼠标,顾名思义就是远程控制鼠标,听起来就有些复杂对不对?是的,有些人一听到这个词,就会感觉要实现远控鼠标是一件很麻烦的事情,但其实不是的!要实现这个功能很简单,下面就让小编来带领你们学会如何实现——远控鼠标。

想要实现这个功能,就得有一定的socket编程基础,和一定的C语言基础,相信这些对于大部分小伙伴都是小意思的吧?

讲一下原理

首先跟大家讲一下小编要实现这个功能的思路,向被控制的计算机发送一组数据,这组数据就是我们的鼠标坐标信息,然后被控制的电脑就通过这组数据来设置鼠标的位置。

我们在细分一下,首先在我们的控制端设置一个服务器,这个服务器处于等待连接状态,被控制的计算机主动向服务器发起连接,连接成功后,服务器将向被控制的计算机发送服务器光标的X轴坐标信息,被控端接到之后向服务器发送“已接收”的信号,服务器收到信号后再将服务器光标的Y轴坐标信息发送被控端。

这时候被控端已经得到了服务器的光标位置信息,随后被控端将自身光标的位置设置为服务器发送过来的光标位置,但是到这里还没完,因为我们要时刻更新被控端的光标位置,以至于它看起来就跟服务器光标的同步移动一样,所以,我们要使用一个循环不停地重新设置鼠标位置,并且服务器也使用一个循环不断地发送光标位置信息。

动手实现

首先我们要在我们电脑上制作一个程序,这个程序就相当于我们的“服务器”程序,上面已经说了大概的实现原理,所以我们现在就开始用代码来一步步实现它,关于客户端的制作方法在上一篇文章,有兴趣的可以在《一碳科技》的主页看到。

代码步骤

首先申请一个套接字,然后绑定好端口,在这之后就开始监听,当接收到客户端传来的连接信息的时候,就开始向客户端发送光标的X轴信息,之后等待接收客户端发过来的“已接收”信息,紧接这发送光标的Y轴位置信息,然后开始循环这些步骤。

申请一个套接字

在进行socket编程之前,我们先使用WSAStartup()函数初始化,记住!在使用socket()函数之前的第一步就是初始化,这一点一定要记住!WSAStartup()函数初始化完成之后,会将初始化的信息保存在一个WSADATA类型的结构体里, 所以在使用WSAStarup()函数之前要申请一个WSADATA类型的结构体。

初始化完成之后就开始申请一个套接字,这时我们会用到socket()函数,在这里小编使用的是ipv4协议族和TCP协议,所以这个函数的参数小编分别填为:AF_INET、SOCK_STREAM,剩下的一个参数通常填0。

开始监听

套接字申请成功之后,我们要将服务器的IP地址、使用的协议族、使用的端口号等信息填入SOCKADDR_IN结构体里面,然后将服务器的socket与本地端口绑定在一起,这要使用到bing(),这个函数需要用到三个参数,分别为服务器的套接字、刚才申请SOCKADDR_IN(强制转换为SOCKADDR *)结构体的地址,第三个参数为第二个参数所占的字节数。

准备工作做好了,开始监听,这时我们会用到listen()函数,这个函数接受两个参数,一个是服务器的套接字,一个是最大连接数(自己定)。

循环发送光标位置信息

监听开始,然后开始等待客户端连接,我们使用accept()函数来等待客户端连接,具体实现方法如下图。

在接收到客户端的连接请求后,服务器开始向客户端循环发送鼠标位置信息,具体实现方法如下图

获取源码

由于时间的关系,本篇文章写得有点仓促,并且程序源码是由之前socket编程教学源码改进过来的,所以本篇文章的源码存在一些不足的地方,但是这些不足的地方没有多大影响,有耐心的朋友可以根据自己的需求进行更改,就当做一次练习吧!

获取源码

先关注《一碳科技》,然后在文章下方评论心得,紧接着私信关键字:“远控鼠标源码获取”,注意关键字不能错哦!

查看原文 >>
相关文章