| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 使用java和qt开发远程控制系统-http接口 -> 正文阅读 |
|
[网络协议]使用java和qt开发远程控制系统-http接口 |
根据以上设计原理,暂时不考虑安全,用户认证等问题,服务器端需要提供的http接口有: 1:用户登录接口 ?????? 参数:deviecode,设备识别码,读取CPU或者硬盘序列号 ?????? 返回:当前用户识别码和验证码 2:用户刷新验证码 ?????? 参数:识别码,验证码 ?????? 返回:新的验证码 3:心跳接口 ?????? 参数:识别码,验证码 ?????? 返回:如果有链接请求,返回链接的ip与端口 4:链接请求,接收链接请求,创建链接记录 ?????? 参数:被控制端识别码,验证码 ?????? 返回:如果成功,返回链接的ip与端口 表设计用户表: 表设计会话表: http服务器端开发,使用eclipse,maven,springboot,mybatis,这些东西就比较过了,过程不表,贴上核心代码。 @RestController @RequestMapping("/yk/") public class IndexController extends BaseController { ??? @Autowired ??? UserService us; ??? @Autowired ??? SessionService ss; ??? ??? Random rdm=new Random(); ??? ??? ??? @RequestMapping("index") ??? public Object index() { ?????? us.getMaxId(); ?????? return success("v1.0.0"); ??? } ??? /** ??? ?* 设备码登录 ??? ?* @param code ??? ?* @return ??? ?*/ ??? @RequestMapping("login/{code}") ??? public Object login(@PathVariable String code) { ?????? ?????? User u=us.getUserByDeviceCode(code); ?????? if(u==null) {??????? ?????????? int maxid=us.getMaxId()+1; ?????????? User u1=new User(); ?????????? u1.setCode(rdm.nextInt(9999)+""+(1000+maxid)); ?????????? u1.setCheckCode(rdm.nextInt(9999)+""); ?????????? u1.setDeviceCode(code); ?????????? us.insert(u1); ?????????? return success(u1); ?????? } ?????? return success(u); ??? } ??? /** ??? ?* 刷新验证码 ??? ?* @param code ??? ?* @param pwd ??? ?* @return ??? ?*/ ??? @RequestMapping("refresh/{code}/{pwd}") ??? public Object refrshCode(@PathVariable String code,@PathVariable String pwd) { ?????? User u=new User(); ?????? u.setCheckCode(pwd); ?????? u.setCode(code); ?????? u=us.selectOne(u); ?????? if(u!=null) { ?????????? u.setCheckCode(rdm.nextInt(9999)+""); ?????????? u.setLastOnLine(new Date()); ?????????? us.onLine(u); ?????????? return success(u); ?????? } ?????? else return error("异常设备"); ??? } ??? /*** ??? ?* 设备心跳接口 ??? ?* @param code ??? ?* @param pwd ??? ?* @return ??? ?*/ ??? @RequestMapping("alive/{code}/{pwd}") ??? public Object alive(@PathVariable String code,@PathVariable String pwd) { ?????? User u=new User(); ?????? u.setCheckCode(pwd); ?????? u.setCode(code); ?????? u=us.selectOne(u); ?????? if(u!=null) { ?????????? u.setLastOnLine(new Date()); ?????????? us.onLine(u);//更新 ?????????? ?????????? MySession session=ss.getByDeviceCode(u.getCode());//查看有没有链接请求 ?????????? if(session!=null) { ????????????? //入股有链接请求 ????????????? return success(session);//链接请求返回 ?????????? } ?????????? ?????????? return success(u);//返回 ?????? } ?????? else { ?????????? return error("异常设备"); ?????? } ??? } ??? ??? /** ??? ?* 请求链接 ??? ?* @param code ??? ?* @param pwd ??? ?* @param mycode ??? ?* @return ??? ?*/ ??? @RequestMapping("control/{code}/{pwd}") ??? public Object control(@PathVariable String code,@PathVariable String pwd,String mycode) { ?????? ?????? User u=new User(); ?????? u.setCheckCode(pwd); ?????? u.setCode(code); ?????? u=us.selectOne(u); ?????? if(u!=null) { ?????????? Long online=(long) 0; ?????? ??? if(u.getLastOnLine()!=null)online=u.getLastOnLine().getTime();//设备在线时间,毫秒 ?????????? Long now=new Date().getTime();//当前时间毫秒 ?????????? if((now-online)/1000>10) { ????????????? //10秒没有在线 ????????????? return error(code+"没有在线"); ?????????? } ?????????? MySession session=new MySession(); ?????????? session.setControlCode(mycode);//控制端 ?????????? session.setControledCode(code);//被控制端 ?????????? session.setIp("127.0.0.1");//可以ip或者域名 ?????????? session.setPort(3456);//链接端口 ?????????? session.setStatus(0);//当前是0 ?????????? ss.insert(session);//存储????????? ??? ?????????? return success(session);//链接请求返回???????? ?????? } ?????? else { ?????????? return error("识别码或者验证错误"); ?????? } ??? } ??? ??? } |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 7:47:44- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |