分享

远程控制鼠标!C语言网络编程:使用socket实现,送源码!

 昵称11935121 2018-10-09


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

上菜!

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

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

远程控制鼠标!C语言网络编程:使用socket实现,送源码!

socket_connet()

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

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

远程控制鼠标!C语言网络编程:使用socket实现,送源码!

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

远程控制鼠标!C语言网络编程:使用socket实现,送源码!

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

远程控制鼠标!C语言网络编程:使用socket实现,送源码!

recv_setpos()

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

远程控制鼠标!C语言网络编程:使用socket实现,送源码!

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

远程控制鼠标!C语言网络编程:使用socket实现,送源码!

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

远程控制鼠标!C语言网络编程:使用socket实现,送源码!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多