标题:Qt开源作品37-网络中转服务器
作者:liudianwu
日期:2020-06-21 10:39
内容:
## 一、前言
用Qt做开发10年了,其中做过好多项目,基于现在web和移动互联网发展如此迅猛,大量的应用场景需要一个网络中转服务器,可以实现手机app或者其他客户端远程回控设备,现在物联网发展非常迅猛,这个将来也是大势所趋,所以有这个想法很久了,打算用Qt也来做个简单的网络中转服务器。
**需求场景:**
1. 手机端或者其他端可以对设备进行回控,并查看设备各种运行状态,接收报警推送等。
2. 同时支持在局域网、广域网、互联网访问,尤其是互联网访问。
3. 权限控制,给定账号控制授权的设备,并自动拉取设备信息。
4. 设备不在线要给出反馈信息提示以便分析。
5. 每个连接都有自己的唯一编号作为标识符。
6. 可以方便的拓展为微信接入+小程序接入+web接入。
## 二、代码思路
```c++
#include "tcpserver1.h"
#include "quiwidget.h"
TcpClient1::TcpClient1(QObject *parent) :QTcpSocket(parent)
{
ip = "127.0.0.1";
port = 6907;
deviceID = "SSJC00000001";
connect(this, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(deleteLater()));
connect(this, SIGNAL(disconnected()), this, SLOT(deleteLater()));
connect(this, SIGNAL(readyRead()), this, SLOT(readData()));
}
void TcpClient1::setIP(const QString &ip)
{
this->ip = ip;
}
QString TcpClient1::getIP() const
{
return this->ip;
}
void TcpClient1::setPort(int port)
{
this->port = port;
}
int TcpClient1::getPort() const
{
return this->port;
}
QString TcpClient1::getDeviceID()
{
return this->deviceID;
}
void TcpClient1::readData()
{
QByteArray data = this->readAll();
if (data.length()
#1 [jsxyhyj 06-24 11:37]
接收是红色的,发送是绿色的,这个是怎么弄出来的?
#2 [clickto 06-24 22:15]
使用html的标签可以设置字体颜色。
#3 [圣域天子 06-25 09:38]
什么叫中转服务器?就是代理吗?
#4 [mndsoft 08-06 09:13]
不好意思,新手,编译调试运行显示: Error 1怎么解决呢? 谢谢
#5 [mndsoft 08-07 10:14]
还有这个中转如何实现 一个 APP客户端 可以查询多个呢?也就是 多个设备转发 同一个APP