c语言控制程序(远程控制C语言编程教学)

c语言控制程序(远程控制C语言编程教学)(1)

关注《一碳科技》获取更多干货哦!


远程控制鼠标

小编又给大家带来干货啦,而且此次干货是大家比较感兴趣的——远程控制鼠标,和之前一样,小编使用的是socket来实现的,说难也难,说简单也简单,对于接触过socket的同学可能会简单一点,而刚刚入门的同学对于这个可能会有点难以理解,但是,既然你看了小编的文章,那么小编就尽力让你看得懂、学得会!

c语言控制程序(远程控制C语言编程教学)(2)

上菜!

首先,我们需要用到windows.h、WinSock2.h、stdio.h这三个头文件,除了以上三个以外,我们还需要一个ws2_32.lib链接库。

我们要编写两个函数,分别实现连接控制端、接受控制端数据并设置鼠标位置,小编分别取名为socket_connet()、recv_setpos()。

c语言控制程序(远程控制C语言编程教学)(3)

socket_connet()

这个函数中,我们需要申请一个WSADATA类型的变量用来储存WSAStartup()函数初始化返回的初始化信息的,除此之外还需要一个SOCKET类型变量、SOCKADDR_IN结构体。

第一步先初始化,然后才能使用其他的socket函数,这一点必须要记住!初始化完成之后就要开始连接服务器了,这时我们会用到connet函数,但是在使用connet函数之前,我们要申请一个套接字,这就需要用到socket函数了。

c语言控制程序(远程控制C语言编程教学)(4)

socket()函数第一个参数是套接字使用的协议族,通常是AF_INET,第二个参数是我们要使用的通讯协议,这里我们使用的是TCP,所以这里填SOCK_STREAM,第三个参数一般填0。紧接着,我们将控制端的ip地址、所使用的协议族、端口号等数据填入SOCKADDR_IN结构体中。

c语言控制程序(远程控制C语言编程教学)(5)

接下来就是使用connet函数连接控制端了,这个函数比较简单,第一个参数是我们刚才申请的套接字,第二个参数是服务器的地址信息(SOCKADDR_IN),第三个是SOCKADDR_IN所占的空间大小。写到这里,我们已经成功连接了控制端了。

c语言控制程序(远程控制C语言编程教学)(6)

recv_setpos()

接收控制端发过来的数据就要使用的recv()函数,这个函数需要四个参数,第一个参数是我们申请的套接字,第二个参数是存放数据的“地方”,第三个是存放数据的“地方”大小,第四个参数设置为0,具体实现步骤可以在源码上看到。

c语言控制程序(远程控制C语言编程教学)(7)

小编使用一个int类型的数组,用来储存控制端发过来的鼠标位置信息,该数组只有一个成员,小编实现控制鼠标的步骤是,接收控制端发过来的鼠标X轴数据填入POINT结构体中,然后再接收控制端发过来的鼠标Y轴数据填入POTIN结构体中

c语言控制程序(远程控制C语言编程教学)(8)

POINT结构体是用来存储鼠标位置信息的,成员为两个LONG类型的变量,我们的光标X、Y轴数据就存储在这两个变量当中,设置鼠标位置需要用到SetCursorPos()函数,这个函数接收两个LONG类型的参数,分别表示光标在X轴、Y轴上的位置。

c语言控制程序(远程控制C语言编程教学)(9)

如何做到实时更新鼠标位置?

小编使用一个while循环不断地接收控制端发过来的鼠标位置数据,然后在循环里设置鼠标位置,在不断地循环当中,鼠标就像被远程控制一样,控制端的鼠标在哪,被控端的鼠标就在哪。

c语言控制程序(远程控制C语言编程教学)(10)

控制端,源码获取

由于时间问题,控制端教学将在下一篇文章中发布,关注《一碳科技》及时了解最新教程。

如何获取源码?

先关注《一碳科技》,程序源码将在下一篇文章中发给大家,所以,想要获取源码的同学,可以留意《一碳科技》的动态。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页