IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: 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地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-03-10 22:59:52  更:2022-03-10 22:59:59 
 
开发: 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-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码