一种基于NanoHttp远程控制Android设备的方法和远程控制系统与流程

未命名 08-05 阅读:121 评论:0

一种基于nanohttp远程控制android设备的方法和远程控制系统
技术领域
1.本发明涉及远程操控技术领域,具体涉及一种基于nanohttp远程控制android设备的方法和远程控制系统。


背景技术:

2.远程控制是指管理人员在异地通过计算机网络异地拨号或双方都接入internet等手段,连通需被控制的计算机,将被控计算机的桌面环境显示到自己的计算机上,通过本地计算机对远方计算机进行配置、软件安装程序、修改等工作。比如,远程唤醒技术是由网卡配合其他软硬件,通过给处于待机状态的网卡发送特定的数据帧,实现电脑从停机状态启动的一种技术。
3.现有技术中,通过websocket或者socket长连接方案,对android设备进行远程操控,但是现有远程操控android设备方案中,使用长连接传输控制参数,并未对控制参数进行任何安全措施,容易受到攻击。


技术实现要素:

4.有鉴于此,本发明的目的在于提供一种基于nanohttp远程控制android设备的方法和远程控制系统,以克服目前远程操控android设备方案中,使用长连接传输控制参数,并未对控制参数进行任何安全措施,容易受到攻击的问题。
5.为实现以上目的,本发明采用如下技术方案:
6.一方面,本技术提供了一种基于nanohttp远程控制android设备的方法,应用于远程控制系统,所述远程控制系统具有客户端和被控设备,所述方法包括:
7.所述客户端通过互联网向所述被控设备发送连接请求,其中,所述被控设备为android设备;
8.所述被控设备对所述连接请求做出响应,与所述客户端建立tcp连接;
9.所述客户端获取用户输入的操作指令,并生成相应的操作请求;
10.所述客户端通过https协议对所述操作请求进行加密,并通过所述tcp连接将加密后的所述操作请求发送给所述被控设备;
11.所述被控设备通过预先搭建的nanohttp服务器,监听预先指定的连接端口,获取加密后的所述操作请求;
12.所述被控设备解析所述操作请求,获取所述操作指令,并根据所述操作指令做出操作响应;
13.所述被控设备通过所述https协议对所述操作响应进行加密,并通过所述tcp连接将加密后的所述操作响应发送给所述客户端。
14.进一步的,以上所述的方法,在所述被控设备对所述连接请求做出响应,与所述客户端建立tcp连接之前,还包括:
15.所述被控设备接收到所述连接请求后,对所述客户端进行安全检测;
16.所述被控设备在检测通过后,对所述连接请求做出响应,与所述客户端建立tcp连接。
17.进一步的,以上所述的方法,所述所述被控设备通过预先搭建的nanohttp服务器,监听预先指定的连接端口,获取加密后的所述操作请求,包括:
18.所述被控设备建立一个server类,并通过oncreate方法在所述server类中启动所述预先搭建的nanohttp服务器;
19.所述被控设备启动所述server类,通过所述nanohttp服务器,监听预先指定的连接端口,获取加密后的所述操作请求。
20.进一步的,以上所述的方法,还包括:
21.所述被控设备检测所述tcp连接的连接时间,并在所述连接时间超过预设时长后,与所述客户端断开所述tcp连接。
22.进一步的,以上所述的方法,所述所述被控设备检测所述tcp连接的连接时间,并在所述连接时间超过预设时长后,与所述客户端断开所述tcp连接,包括:
23.所述被控设备检测所述tcp连接的未传送请求时长,并在所述未传送请求时长超过预设时长后,与所述客户端断开所述tcp连接。
24.进一步的,以上所述的方法,所述所述被控设备解析所述操作请求,获取所述操作指令,并根据所述操作指令做出操作响应,包括:
25.所述被控设备解析所述操作请求,获取解析结果;
26.若所述解析结果为解析失败,则所述被控设备再次对所述操作请求进行解析,直到超过预设解析次数后,通过所述tcp连接向所述客户端发送解析失败;
27.若所述解析结果为解析成功,则所述被控设备获取所述操作指令,并根据所述操作指令做出操作响应。
28.进一步的,以上所述的方法,所述若所述解析结果为解析成功,则所述被控设备获取所述操作指令,并根据所述操作指令做出操作响应,包括:
29.若所述解析结果为解析成功,则所述被控设备获取所述操作指令,并对所述操作指令进行识别;
30.若无法识别所述操作指令,则所述被控设备通过所述tcp连接向所述客户端发送参数异常;
31.若识别成功,则所述被控设备根据所述操作指令做出操作响应。
32.进一步的,以上所述的方法,所述所述被控设备接收到所述连接请求后,对所述客户端进行安全检测,包括:
33.所述被控设备接收到所述连接请求后,检测所述客户端的ip地址,判断所述ip地址是否在预先创建的可连接ip地址名单中。
34.进一步的,以上所述的方法,所述所述被控设备接收到所述连接请求后,对所述客户端进行安全检测,包括:
35.所述被控设备接收到所述连接请求后,向所述客户端发起身份验证请求;
36.所述客户端接收到所述身份验证请求后,获取用户输入的连接账号和连接密码,并在对所述连接账号和所述连接密码进行加密后,发送给所述被控设备;
37.所述被控设备接收到加密后的所述连接账号和所述连接密码后,对加密后的所述连接账号和所述连接密码进行解析,获取所述连接账号和所述连接密码,并通过所述连接账号和所述连接密码对所述客户端进行身份验证。
38.另一方面,本技术还提供了一种远程控制系统,包括:
39.客户端,用于通过互联网向被控设备发送连接请求,其中,所述被控设备为android设备;
40.所述被控设备,用于对所述连接请求做出响应,与所述客户端建立tcp连接;
41.所述客户端,还用于获取用户输入的操作指令,并生成相应的操作请求,通过https协议对所述操作请求进行加密,并通过所述tcp连接将加密后的所述操作请求发送给所述被控android设备;
42.所述被控设备,还用于通过预先搭建的nanohttp服务器,监听预先指定的连接端口,获取加密后的所述操作请求,解析所述操作请求,获取所述操作指令,根据所述操作指令做出操作响应,通过https协议对所述操作响应进行加密,通过所述tcp连接将加密后的所述操作响应发送给客户端。
43.本发明的有益效果为:
44.本技术中,客户端通过互联网向被控设备发送连接请求,其中,被控设备为android设备;被控设备对连接请求做出响应,与客户端建立tcp连接;客户端获取用户输入的操作指令,并生成相应的操作请求;客户端通过https协议对操作请求进行加密,并通过tcp连接将加密后的操作请求发送给被控设备;被控设备通过预先搭建的nanohttp服务器,监听预先指定的连接端口,获取加密后的操作请求;被控设备解析操作请求,获取操作指令,并根据操作指令做出操作响应;被控设备通过https协议对操作响应进行加密,并通过tcp连接将加密后的操作响应发送给客户端。在本技术中,通过https协议对客户端与被控设备之间传输的数据进行加密,从而解决目前远程操控android设备方案中,使用长连接传输控制参数,并未对控制参数进行任何安全措施,容易受到攻击的问题。
附图说明
45.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
46.图1是本发明一种基于nanohttp远程控制android设备的方法一种实施例提供的流程图;
47.图2是本发明一种远程控制系统一种实施例提供的结构示意图。
具体实施方式
48.为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
49.现有技术中,通过websocket或者socket长连接方案,对android设备进行远程操控,但是现有远程操控android设备方案中,使用长连接传输控制参数,并未对控制参数进行任何安全措施,容易受到攻击。
50.有鉴于此,本发明的目的在于提供一种基于nanohttp远程控制android设备的方法和远程控制系统,以克服目前远程操控android设备方案中,使用长连接传输控制参数,并未对控制参数进行任何安全措施,容易受到攻击的问题。
51.图1是本发明一种基于nanohttp远程控制android设备的方法一种实施例提供的流程图。请参阅图1,本实施例应用于远程控制系统,远程控制系统具有客户端和被控设备,可以包括以下步骤:
52.s1、客户端通过互联网向被控设备发送连接请求,其中,被控设备为android设备。
53.s2、被控设备对连接请求做出响应,与客户端建立tcp连接。
54.s3、客户端获取用户输入的操作指令,并生成相应的操作请求。
55.s4、客户端通过https协议对操作请求进行加密,并通过tcp连接将加密后的操作请求发送给被控设备。
56.s5、被控设备通过预先搭建的nanohttp服务器,监听预先指定的连接端口,获取加密后的操作请求。
57.s6、被控设备解析操作请求,获取操作指令,并根据操作指令做出操作响应。
58.s7、被控设备通过https协议对操作响应进行加密,并通过tcp连接将加密后的操作响应发送给客户端。
59.可以理解的是,本实施例中,客户端通过互联网向被控设备发送连接请求,其中,被控设备为android设备;被控设备对连接请求做出响应,与客户端建立tcp连接;客户端获取用户输入的操作指令,并生成相应的操作请求;客户端通过https协议对操作请求进行加密,并通过tcp连接将加密后的操作请求发送给被控设备;被控设备通过预先搭建的nanohttp服务器,监听预先指定的连接端口,获取加密后的操作请求;被控设备解析操作请求,获取操作指令,并根据操作指令做出操作响应;被控设备通过https协议对操作响应进行加密,并通过tcp连接将加密后的操作响应发送给客户端。在本实施例中,通过https协议对客户端与被控设备之间传输的数据进行加密,从而解决目前远程操控android设备方案中,使用长连接传输控制参数,并未对控制参数进行任何安全措施,容易受到攻击的问题。
60.需要说明的是,本实施例中,客户端可以是pc端或手机端,本实施例中,被控设备可以同时和多个客户端进行连接,被控设备在执行接收到的多个客户端的操作指令时,根据各客户端发送的时间按顺序进行执行,并在执行完成后,将操作响应发送给各个客户端。
61.本实施例中,使用https协议时,通过https中的ssl/tls协议对建立的长连接端口进行加密,防止端口被攻击。通过http请求处理函数,向被控设备发送控制参数,例如:可以通过url参数控制app的界面跳转和数据传输。
62.在具体的实践中,用户可以通过客户端远程操控android设备打开相应app,此时在客户端与被控android设备建立连接后,被控android设备便将自身桌面显示内容实时发送到客户端,接收到客户端打开相应app指令后,打开对应的app,此时客户端中便显示被控android设备桌面中打开了对应的app。
63.优选的,在步骤s2之前,还包括:
64.被控设备接收到连接请求后,对客户端进行安全检测;
65.被控设备在检测通过后,对连接请求做出响应,与客户端建立tcp连接。
66.优选的,被控设备接收到连接请求后,对客户端进行安全检测,包括:
67.被控设备接收到连接请求后,检测客户端的ip地址,判断ip地址是否在预先创建的可连接ip地址名单中。
68.优选的,被控设备接收到连接请求后,对客户端进行安全检测,还包括:
69.被控设备接收到连接请求后,向客户端发起身份验证请求;
70.客户端接收到身份验证请求后,获取用户输入的连接账号和连接密码,并在对连接账号和连接密码进行加密后,发送给被控设备;
71.被控设备接收到加密后的连接账号和连接密码后,对加密后的连接账号和连接密码进行解析,获取连接账号和连接密码,并通过连接账号和连接密码对客户端进行身份验证。
72.可以理解的是,对客户端的ip地址进行检测,通过可连接ip地址名单,只允许特定的ip地址或ip地址范围与被控设备建立连接,可以防止来自未知ip地址的攻击。通过账号密码验证,来确认用户身份,增加安全性,确保被控设备不会接收到攻击者的操作指令。在一些可选的实施例中,还可以使用单点登录(sso)方式进行身份验证。此外,还可以使用多因素身份验证(mfa)来增加安全性,例如要求用户输入手机验证码或使用硬件令牌。
73.优选的,还包括:
74.被控设备检测tcp连接的连接时间,并在连接时间超过预设时长后,与客户端断开tcp连接。
75.优选的,被控设备检测tcp连接的连接时间,并在连接时间超过预设时长后,与客户端断开tcp连接,包括:
76.被控设备检测tcp连接的未传送请求时长,并在未传送请求时长超过预设时长后,与客户端断开tcp连接。
77.可以理解的是,通过对连接设置连接时长,检测未接收到客户端参数的时间,在超过预设的时间后,断开与客户端的连接,可以避免长时间占用资源,提高资源利用效率。
78.优选的,步骤s6,包括:
79.被控设备解析操作请求,获取解析结果;
80.若解析结果为解析失败,则被控设备再次对操作请求进行解析,直到超过预设解析次数后,通过tcp连接向客户端发送解析失败;
81.若解析结果为解析成功,则被控设备获取操作指令,并根据操作指令做出操作响应。
82.优选的,若解析结果为解析成功,则被控设备获取操作指令,并根据操作指令做出操作响应,包括:
83.若解析结果为解析成功,则被控设备获取操作指令,并对操作指令进行识别;
84.若无法识别操作指令,则被控设备通过tcp连接向客户端发送参数异常;
85.若识别成功,则被控设备根据操作指令做出操作响应。
86.可以理解的是,在接收到客户端的操作指令后,首先对操作指令进行解析,若解析失败则向客户端发送解析失败,以提醒用户,传输的参数错误,无法解析,方便用户及时调
整,并且在解析成功后,会对操作指令进行识别,判断是否为可执行操作指令。
87.优选的,步骤s5,包括:
88.被控设备建立一个server类,并通过oncreate方法在server类中启动预先搭建的nanohttp服务器;
89.被控设备启动server类,通过nanohttp服务器,监听预先指定的连接端口,获取加密后的操作请求。
90.可以理解的是,通过在server类中启动nanohttp服务器,可以使nanohttp服务器一直在后台运行,实时监听预先指定的连接端口。
91.本发明还提供了一种远程控制系统,用于实现上述方法实施例。图2是本发明一种远程控制系统一种实施例提供的结构示意图。如图2所示,包括:
92.客户端1,用于通过互联网向被控设备2发送连接请求,其中,被控设备2为android设备;
93.被控设备2,用于对连接请求做出响应,与客户端1建立tcp连接;
94.客户端1,还用于获取用户输入的操作指令,并生成相应的操作请求,通过https协议对操作请求进行加密,并通过tcp连接将加密后的操作请求发送给被控android设备;
95.被控设备2,还用于通过预先搭建的nanohttp服务器,监听预先指定的连接端口,获取加密后的操作请求,解析操作请求,获取操作指令,根据操作指令做出操作响应,通过https协议对操作响应进行加密,通过tcp连接将加密后的操作响应发送给客户端1。
96.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
97.可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
98.需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
99.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
100.应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
101.本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
102.此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
103.上述提到的存储介质可以是只读存储器,磁盘或光盘等。
104.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
105.尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

技术特征:
1.一种基于nanohttp远程控制android设备的方法,其特征在于,应用于远程控制系统,所述远程控制系统具有客户端和被控设备,所述方法包括:所述客户端通过互联网向所述被控设备发送连接请求,其中,所述被控设备为android设备;所述被控设备对所述连接请求做出响应,与所述客户端建立tcp连接;所述客户端获取用户输入的操作指令,并生成相应的操作请求;所述客户端通过https协议对所述操作请求进行加密,并通过所述tcp连接将加密后的所述操作请求发送给所述被控设备;所述被控设备通过预先搭建的nanohttp服务器,监听预先指定的连接端口,获取加密后的所述操作请求;所述被控设备解析所述操作请求,获取所述操作指令,并根据所述操作指令做出操作响应;所述被控设备通过所述https协议对所述操作响应进行加密,并通过所述tcp连接将加密后的所述操作响应发送给所述客户端。2.根据权利要求1所述的方法,其特征在于,在所述被控设备对所述连接请求做出响应,与所述客户端建立tcp连接之前,还包括:所述被控设备接收到所述连接请求后,对所述客户端进行安全检测;所述被控设备在检测通过后,对所述连接请求做出响应,与所述客户端建立tcp连接。3.根据权利要求2所述的方法,其特征在于,所述所述被控设备通过预先搭建的nanohttp服务器,监听预先指定的连接端口,获取加密后的所述操作请求,包括:所述被控设备建立一个server类,并通过oncreate方法在所述server类中启动所述预先搭建的nanohttp服务器;所述被控设备启动所述server类,通过所述nanohttp服务器,监听预先指定的连接端口,获取加密后的所述操作请求。4.根据权利要求3所述的方法,其特征在于,还包括:所述被控设备检测所述tcp连接的连接时间,并在所述连接时间超过预设时长后,与所述客户端断开所述tcp连接。5.根据权利要求4所述的方法,其特征在于,所述所述被控设备检测所述tcp连接的连接时间,并在所述连接时间超过预设时长后,与所述客户端断开所述tcp连接,包括:所述被控设备检测所述tcp连接的未传送请求时长,并在所述未传送请求时长超过预设时长后,与所述客户端断开所述tcp连接。6.根据权利要求5所述的方法,其特征在于,所述所述被控设备解析所述操作请求,获取所述操作指令,并根据所述操作指令做出操作响应,包括:所述被控设备解析所述操作请求,获取解析结果;若所述解析结果为解析失败,则所述被控设备再次对所述操作请求进行解析,直到超过预设解析次数后,通过所述tcp连接向所述客户端发送解析失败;若所述解析结果为解析成功,则所述被控设备获取所述操作指令,并根据所述操作指令做出操作响应。7.根据权利要求6所述的方法,其特征在于,所述若所述解析结果为解析成功,则所述
被控设备获取所述操作指令,并根据所述操作指令做出操作响应,包括:若所述解析结果为解析成功,则所述被控设备获取所述操作指令,并对所述操作指令进行识别;若无法识别所述操作指令,则所述被控设备通过所述tcp连接向所述客户端发送参数异常;若识别成功,则所述被控设备根据所述操作指令做出操作响应。8.根据权利要求7所述的方法,其特征在于,所述所述被控设备接收到所述连接请求后,对所述客户端进行安全检测,包括:所述被控设备接收到所述连接请求后,检测所述客户端的ip地址,判断所述ip地址是否在预先创建的可连接ip地址名单中。9.根据权利要求7所述的方法,其特征在于,所述所述被控设备接收到所述连接请求后,对所述客户端进行安全检测,包括:所述被控设备接收到所述连接请求后,向所述客户端发起身份验证请求;所述客户端接收到所述身份验证请求后,获取用户输入的连接账号和连接密码,并在对所述连接账号和所述连接密码进行加密后,发送给所述被控设备;所述被控设备接收到加密后的所述连接账号和所述连接密码后,对加密后的所述连接账号和所述连接密码进行解析,获取所述连接账号和所述连接密码,并通过所述连接账号和所述连接密码对所述客户端进行身份验证。10.一种远程控制系统,其特征在于,包括:客户端,用于通过互联网向被控设备发送连接请求,其中,所述被控设备为android设备;所述被控设备,用于对所述连接请求做出响应,与所述客户端建立tcp连接;所述客户端,还用于获取用户输入的操作指令,并生成相应的操作请求,通过https协议对所述操作请求进行加密,并通过所述tcp连接将加密后的所述操作请求发送给所述被控android设备;所述被控设备,还用于通过预先搭建的nanohttp服务器,监听预先指定的连接端口,获取加密后的所述操作请求,解析所述操作请求,获取所述操作指令,根据所述操作指令做出操作响应,通过https协议对所述操作响应进行加密,通过所述tcp连接将加密后的所述操作响应发送给客户端。

技术总结
本发明涉及一种基于NanoHttp远程控制Android设备的方法和远程控制系统,方法包括,客户端通过互联网向被控设备发送连接请求,被控设备对连接请求做出响应,与客户端建立TCP连接;客户端获取用户输入的操作指令,并生成相应的操作请求;通过HTTPS协议对操作请求进行加密,并通过TCP连接发送给被控设备;被控设备通过预先搭建的NanoHttp服务器,监听指定连接端口,获取加密后的操作请求,解析并获取操作指令,并根据操作指令做出操作响应,通过HTTPS协议对操作响应进行加密,并发送给客户端。通过HTTPS协议对客户端与被控设备之间传输的数据进行加密,从而解决目前远程操控android设备方案中,使用长连接传输控制参数,并未对控制参数进行任何安全措施,容易受到攻击的问题。击的问题。击的问题。


技术研发人员:李嘉伦 高斌 邹琼 周双全
受保护的技术使用者:深圳市瑞云科技股份有限公司
技术研发日:2023.06.06
技术公布日:2023/8/4
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐