解决linux系统中对两个不同的网络连接http访问
2024-10-21 11:27:37
项目5G
问题背景:调用网络端的服务器服务,对本地机器人进行控制,以实现机器人应执行的任务。
需求:主机需要访问外网的API,同时在本地局域网与机器人的API进行通信。
问题:要解决HTTP请求发送到指定网络的问题?
可能的方法收集:
一,使用终端更改网络连接的跃点,跃点越低优先级越高,可以尝试使用小的脚本进行终端的一些操作,以实现在访问特定地址时进行网络的切换。
route -n
sudo ifmetric wlp0s20f3 90 #更改跃
QT 执行终端命令 通过Qprocess
QProcess *process=new QProcess;
process->start("bash"); //启动终端(Windows下改为cmd)
process->waitForStarted(); //等待启动完成
process->write("命令"+‘\n’); //向终端写入命令,注意尾部的“\n”不可省略
二,网络中继
但网络中继过程中有一些继承的问题,具体解决办法参考另一片文章《路由器WDS(无线桥接,无线中继)》
Tips:
1. Qt 中访问网络使用 QNetworkAccessManager
,它的 API 是异步的,这样在访问网络的时候不需要启动一个线程,在线程里执行请求的代码。(但这一点在有时候需要阻塞时就是个麻烦了)
需要注意一点的是,请求响应的对象 QNetworkReply
需要我们自己手动的删除,一般都会在 QNetworkAccessManager::finished
信号的曹函数里使用 reply->deleteLater()
删除,不要直接 delete reply
。
同步和异步的区别:同步,只有当前API执行完成后,才能继续执行下一个API;异步:当前API的执行不会阻塞到后面代码的执行。
最终解决办法:二
最新文章
- POJ 2739. Sum of Consecutive Prime Numbers
- UIToolBar
- Python之路----------ConfigParser模块
- 设置ubuntu 下git 的用户名和邮箱
- codevs 2606 约数和问题
- BAT及各大互联网公司前端笔试面试题--Html,Css篇
- 安装xampp无法设置默认时间的坑
- Memcached 及 Redis 架构分析和比较
- matlab求方差,均值,均方差,协方差的函数
- HDU-1020-Encoding(水题,但题目意思容易搞错,英语的问题)
- Json及Json字符串
- Memcache+cookie实现模拟session
- Java并发框架——AQS之阻塞与唤醒
- http://www.layui.com/doc/modules/laydate.html实时通信\日期、==插件
- C#进度条简单应用
- play framework 笔记
- Install Oracle Database client in silent mode
- numpy中的norm用法
- 问题 Duplicate entry '0' for key 'PRIMARY'
- Ogre Compositor解析