diff --git a/comtool/api/api.pri b/comtool/api/api.pri index 4e34769..ede42b8 100644 --- a/comtool/api/api.pri +++ b/comtool/api/api.pri @@ -1,5 +1,7 @@ HEADERS += \ - $$PWD/appconfig.h + $$PWD/appconfig.h \ + $$PWD/appdata.h SOURCES += \ - $$PWD/appconfig.cpp + $$PWD/appconfig.cpp \ + $$PWD/appdata.cpp diff --git a/comtool/api/appconfig.cpp b/comtool/api/appconfig.cpp index faef55c..fe488e2 100644 --- a/comtool/api/appconfig.cpp +++ b/comtool/api/appconfig.cpp @@ -96,65 +96,3 @@ void AppConfig::writeConfig() set.setValue("AutoConnect", AppConfig::AutoConnect); set.endGroup(); } - -QStringList AppConfig::Intervals = QStringList(); -QStringList AppConfig::Datas = QStringList(); -QStringList AppConfig::Keys = QStringList(); -QStringList AppConfig::Values = QStringList(); - -void AppConfig::readSendData() -{ - //读取发送数据列表 - AppConfig::Datas.clear(); - QString fileName = QString("%1/%2").arg(QUIHelper::appPath()).arg(AppConfig::SendFileName); - QFile file(fileName); - if (file.size() > 0 && file.open(QFile::ReadOnly | QIODevice::Text)) { - while (!file.atEnd()) { - QString line = file.readLine(); - line = line.trimmed(); - line = line.replace("\r", ""); - line = line.replace("\n", ""); - if (!line.isEmpty()) { - AppConfig::Datas.append(line); - } - } - - file.close(); - } - - if (AppConfig::Datas.count() == 0) { - AppConfig::Datas << "16 FF 01 01 E0 E1" << "16 FF 01 01 E1 E2"; - } -} - -void AppConfig::readDeviceData() -{ - //读取转发数据列表 - AppConfig::Keys.clear(); - AppConfig::Values.clear(); - QString fileName = QString("%1/%2").arg(QUIHelper::appPath()).arg(AppConfig::DeviceFileName); - QFile file(fileName); - if (file.size() > 0 && file.open(QFile::ReadOnly | QIODevice::Text)) { - while (!file.atEnd()) { - QString line = file.readLine(); - line = line.trimmed(); - line = line.replace("\r", ""); - line = line.replace("\n", ""); - if (!line.isEmpty()) { - QStringList list = line.split(";"); - QString key = list.at(0); - QString value; - for (int i = 1; i < list.count(); i++) { - value += QString("%1;").arg(list.at(i)); - } - - //去掉末尾分号 - value = value.mid(0, value.length() - 1); - AppConfig::Keys.append(key); - AppConfig::Values.append(value); - } - } - - file.close(); - } -} diff --git a/comtool/api/appconfig.h b/comtool/api/appconfig.h index c41a8ad..5603bc1 100644 --- a/comtool/api/appconfig.h +++ b/comtool/api/appconfig.h @@ -33,16 +33,9 @@ public: static int SleepTime; //延时时间 static bool AutoConnect; //自动重连 - //读写配置参数及其他操作 + //读写配置参数 static void readConfig(); //读取配置参数 static void writeConfig(); //写入配置参数 - - static QStringList Intervals; - static QStringList Datas; - static QStringList Keys; - static QStringList Values; - static void readSendData(); - static void readDeviceData(); }; #endif // APPCONFIG_H diff --git a/comtool/api/appdata.cpp b/comtool/api/appdata.cpp new file mode 100644 index 0000000..7cbf7fa --- /dev/null +++ b/comtool/api/appdata.cpp @@ -0,0 +1,92 @@ +#include "appdata.h" +#include "quihelper.h" + +QStringList AppData::Intervals = QStringList(); +QStringList AppData::Datas = QStringList(); +QStringList AppData::Keys = QStringList(); +QStringList AppData::Values = QStringList(); + +QString AppData::SendFileName = "send.txt"; +void AppData::readSendData() +{ + //读取发送数据列表 + AppData::Datas.clear(); + QString fileName = QString("%1/%2").arg(QUIHelper::appPath()).arg(AppData::SendFileName); + QFile file(fileName); + if (file.size() > 0 && file.open(QFile::ReadOnly | QIODevice::Text)) { + while (!file.atEnd()) { + QString line = file.readLine(); + line = line.trimmed(); + line = line.replace("\r", ""); + line = line.replace("\n", ""); + if (!line.isEmpty()) { + AppData::Datas.append(line); + } + } + + file.close(); + } + + //没有的时候主动添加点免得太空 + if (AppData::Datas.count() == 0) { + AppData::Datas << "16 FF 01 01 E0 E1" << "16 FF 01 01 E1 E2"; + } +} + +QString AppData::DeviceFileName = "device.txt"; +void AppData::readDeviceData() +{ + //读取转发数据列表 + AppData::Keys.clear(); + AppData::Values.clear(); + QString fileName = QString("%1/%2").arg(QUIHelper::appPath()).arg(AppData::DeviceFileName); + QFile file(fileName); + if (file.size() > 0 && file.open(QFile::ReadOnly | QIODevice::Text)) { + while (!file.atEnd()) { + QString line = file.readLine(); + line = line.trimmed(); + line = line.replace("\r", ""); + line = line.replace("\n", ""); + if (!line.isEmpty()) { + QStringList list = line.split(";"); + QString key = list.at(0); + QString value; + for (int i = 1; i < list.count(); i++) { + value += QString("%1;").arg(list.at(i)); + } + + //去掉末尾分号 + value = value.mid(0, value.length() - 1); + AppData::Keys.append(key); + AppData::Values.append(value); + } + } + + file.close(); + } +} + +void AppData::saveData(const QString &data) +{ + if (data.length() <= 0) { + return; + } + + QString fileName = QString("%1/%2.txt").arg(QUIHelper::appPath()).arg(STRDATETIME); + QFile file(fileName); + if (file.open(QFile::WriteOnly | QFile::Text)) { + file.write(data.toUtf8()); + file.close(); + } +} + +void AppData::loadIP(QComboBox *cbox) +{ + //获取本机所有IP + QStringList ips = QUIHelper::getLocalIPs(); + cbox->clear(); + cbox->addItems(ips); + if (!ips.contains("127.0.0.1")) { + cbox->addItem("127.0.0.1"); + } +} diff --git a/comtool/api/appdata.h b/comtool/api/appdata.h new file mode 100644 index 0000000..13091c7 --- /dev/null +++ b/comtool/api/appdata.h @@ -0,0 +1,30 @@ +#ifndef APPDATA_H +#define APPDATA_H + +#include "head.h" + +class AppData +{ +public: + //全局变量 + static QStringList Intervals; + static QStringList Datas; + static QStringList Keys; + static QStringList Values; + + //读取发送数据列表 + static QString SendFileName; + static void readSendData(); + + //读取转发数据列表 + static QString DeviceFileName; + static void readDeviceData(); + + //保存数据到文件 + static void saveData(const QString &data); + + //添加网卡IP地址到下拉框 + static void loadIP(QComboBox *cbox); +}; + +#endif // APPDATA_H diff --git a/comtool/form/frmcomtool.cpp b/comtool/form/frmcomtool.cpp index d5861b3..d9db3b3 100644 --- a/comtool/form/frmcomtool.cpp +++ b/comtool/form/frmcomtool.cpp @@ -24,8 +24,8 @@ void frmComTool::initForm() sendCount = 0; isShow = true; - ui->cboxSendInterval->addItems(AppConfig::Intervals); - ui->cboxData->addItems(AppConfig::Datas); + ui->cboxSendInterval->addItems(AppData::Intervals); + ui->cboxData->addItems(AppData::Datas); //读取数据 timerRead = new QTimer(this); @@ -49,7 +49,11 @@ void frmComTool::initForm() socket = new QTcpSocket(this); socket->abort(); connect(socket, SIGNAL(readyRead()), this, SLOT(readDataNet())); +#if (QT_VERSION >= QT_VERSION_CHECK(6,0,0)) + connect(socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)), this, SLOT(readErrorNet())); +#else connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(readErrorNet())); +#endif timerConnect = new QTimer(this); connect(timerConnect, SIGNAL(timeout()), this, SLOT(connectNet())); @@ -317,10 +321,10 @@ void frmComTool::readData() //启用调试则模拟调试数据 if (ui->ckDebug->isChecked()) { - int count = AppConfig::Keys.count(); + int count = AppData::Keys.count(); for (int i = 0; i < count; i++) { - if (buffer.startsWith(AppConfig::Keys.at(i))) { - sendData(AppConfig::Values.at(i)); + if (buffer.startsWith(AppData::Keys.at(i))) { + sendData(AppData::Values.at(i)); break; } } @@ -427,7 +431,7 @@ void frmComTool::on_btnOpen_clicked() timerRead->stop(); com->close(); com->deleteLater(); - + changeEnable(false); ui->btnOpen->setText("打开串口"); on_btnClear_clicked(); @@ -482,7 +486,7 @@ void frmComTool::on_btnData_clicked() file.close(); ui->txtMain->clear(); ui->btnData->setText("管理数据"); - AppConfig::readSendData(); + AppData::readSendData(); } } diff --git a/comtool/head.h b/comtool/head.h index 63c0ee1..8b707e9 100644 --- a/comtool/head.h +++ b/comtool/head.h @@ -12,3 +12,4 @@ #pragma execution_character_set("utf-8") #include "appconfig.h" +#include "appdata.h" diff --git a/comtool/main.cpp b/comtool/main.cpp index 7ba939c..23ec214 100644 --- a/comtool/main.cpp +++ b/comtool/main.cpp @@ -17,11 +17,12 @@ int main(int argc, char *argv[]) QUIHelper::setTranslator(":/widgets.qm"); QUIHelper::initRand(); - AppConfig::Intervals << "1" << "10" << "20" << "50" << "100" << "200" << "300" << "500" << "1000" << "1500" << "2000" << "3000" << "5000" << "10000"; AppConfig::ConfigFile = QString("%1/%2.ini").arg(QUIHelper::appPath()).arg(QUIHelper::appName()); AppConfig::readConfig(); - AppConfig::readSendData(); - AppConfig::readDeviceData(); + + AppData::Intervals << "1" << "10" << "20" << "50" << "100" << "200" << "300" << "500" << "1000" << "1500" << "2000" << "3000" << "5000" << "10000"; + AppData::readSendData(); + AppData::readDeviceData(); frmComTool w; w.setWindowTitle("串口调试助手 V2021 (QQ: 517216493 WX: feiyangqingyun)"); diff --git a/ffmpegdemo/readme.md b/ffmpegdemo/readme.md index 994fc00..a712578 100644 --- a/ffmpegdemo/readme.md +++ b/ffmpegdemo/readme.md @@ -1,5 +1,5 @@ -### 特别说明 -1. 编译完成以后记得将dll文件复制到可执行文件同一目录。 +### 特别说明 +1. 编译完成以后记得将动态库文件复制到可执行文件同一目录。 2. 动态库地址:[https://pan.baidu.com/s/13LDRu6mXC6gaADtrGprNVA](https://pan.baidu.com/s/13LDRu6mXC6gaADtrGprNVA) 提取码: ujm7 3. 收费增强版:[https://qtchina.blog.csdn.net/article/details/103946731](https://qtchina.blog.csdn.net/article/details/103946731) diff --git a/nettool/api/api.pri b/nettool/api/api.pri index 1b33126..6448d50 100644 --- a/nettool/api/api.pri +++ b/nettool/api/api.pri @@ -1,8 +1,10 @@ -HEADERS += $$PWD/appconfig.h +HEADERS += $$PWD/appconfig.h \ + $$PWD/appdata.h HEADERS += $$PWD/tcpclient.h HEADERS += $$PWD/tcpserver.h -SOURCES += $$PWD/appconfig.cpp +SOURCES += $$PWD/appconfig.cpp \ + $$PWD/appdata.cpp SOURCES += $$PWD/tcpclient.cpp SOURCES += $$PWD/tcpserver.cpp diff --git a/nettool/api/appconfig.cpp b/nettool/api/appconfig.cpp index 75f370c..8eb3cc3 100644 --- a/nettool/api/appconfig.cpp +++ b/nettool/api/appconfig.cpp @@ -2,9 +2,6 @@ #include "quihelper.h" QString AppConfig::ConfigFile = "config.ini"; -QString AppConfig::SendFileName = "send.txt"; -QString AppConfig::DeviceFileName = "device.txt"; - int AppConfig::CurrentIndex = 0; bool AppConfig::HexSendTcpClient = false; @@ -13,6 +10,8 @@ bool AppConfig::AsciiTcpClient = false; bool AppConfig::DebugTcpClient = false; bool AppConfig::AutoSendTcpClient = false; int AppConfig::IntervalTcpClient = 1000; +QString AppConfig::TcpBindIP = "127.0.0.1"; +int AppConfig::TcpBindPort = 6001; QString AppConfig::TcpServerIP = "127.0.0.1"; int AppConfig::TcpServerPort = 6000; @@ -32,6 +31,8 @@ bool AppConfig::AsciiUdpClient = false; bool AppConfig::DebugUdpClient = false; bool AppConfig::AutoSendUdpClient = false; int AppConfig::IntervalUdpClient = 1000; +QString AppConfig::UdpBindIP = "127.0.0.1"; +int AppConfig::UdpBindPort = 6001; QString AppConfig::UdpServerIP = "127.0.0.1"; int AppConfig::UdpServerPort = 6000; @@ -84,6 +85,8 @@ void AppConfig::readConfig() AppConfig::DebugTcpClient = set.value("DebugTcpClient", AppConfig::DebugTcpClient).toBool(); AppConfig::AutoSendTcpClient = set.value("AutoSendTcpClient", AppConfig::AutoSendTcpClient).toBool(); AppConfig::IntervalTcpClient = set.value("IntervalTcpClient", AppConfig::IntervalTcpClient).toInt(); + AppConfig::TcpBindIP = set.value("TcpBindIP", AppConfig::TcpBindIP).toString(); + AppConfig::TcpBindPort = set.value("TcpBindPort", AppConfig::TcpBindPort).toInt(); AppConfig::TcpServerIP = set.value("TcpServerIP", AppConfig::TcpServerIP).toString(); AppConfig::TcpServerPort = set.value("TcpServerPort", AppConfig::TcpServerPort).toInt(); set.endGroup(); @@ -107,6 +110,8 @@ void AppConfig::readConfig() AppConfig::DebugUdpClient = set.value("DebugUdpClient", AppConfig::DebugUdpClient).toBool(); AppConfig::AutoSendUdpClient = set.value("AutoSendUdpClient", AppConfig::AutoSendUdpClient).toBool(); AppConfig::IntervalUdpClient = set.value("IntervalUdpClient", AppConfig::IntervalUdpClient).toInt(); + AppConfig::UdpBindIP = set.value("UdpBindIP", AppConfig::UdpBindIP).toString(); + AppConfig::UdpBindPort = set.value("UdpBindPort", AppConfig::UdpBindPort).toInt(); AppConfig::UdpServerIP = set.value("UdpServerIP", AppConfig::UdpServerIP).toString(); AppConfig::UdpServerPort = set.value("UdpServerPort", AppConfig::UdpServerPort).toInt(); set.endGroup(); @@ -161,6 +166,8 @@ void AppConfig::writeConfig() set.setValue("DebugTcpClient", AppConfig::DebugTcpClient); set.setValue("AutoSendTcpClient", AppConfig::AutoSendTcpClient); set.setValue("IntervalTcpClient", AppConfig::IntervalTcpClient); + set.setValue("TcpBindIP", AppConfig::TcpBindIP); + set.setValue("TcpBindPort", AppConfig::TcpBindPort); set.setValue("TcpServerIP", AppConfig::TcpServerIP); set.setValue("TcpServerPort", AppConfig::TcpServerPort); set.endGroup(); @@ -182,6 +189,8 @@ void AppConfig::writeConfig() set.setValue("DebugUdpClient", AppConfig::DebugUdpClient); set.setValue("AutoSendUdpClient", AppConfig::AutoSendUdpClient); set.setValue("IntervalUdpClient", AppConfig::IntervalUdpClient); + set.setValue("UdpBindIP", AppConfig::UdpBindIP); + set.setValue("UdpBindPort", AppConfig::UdpBindPort); set.setValue("UdpServerIP", AppConfig::UdpServerIP); set.setValue("UdpServerPort", AppConfig::UdpServerPort); set.endGroup(); @@ -218,79 +227,3 @@ void AppConfig::writeConfig() set.setValue("SelectAllWebServer", AppConfig::SelectAllWebServer); set.endGroup(); } - -QStringList AppConfig::Intervals = QStringList(); -QStringList AppConfig::Datas = QStringList(); -QStringList AppConfig::Keys = QStringList(); -QStringList AppConfig::Values = QStringList(); - -void AppConfig::readSendData() -{ - //读取发送数据列表 - AppConfig::Datas.clear(); - QString fileName = QString("%1/%2").arg(QUIHelper::appPath()).arg(AppConfig::SendFileName); - QFile file(fileName); - if (file.size() > 0 && file.open(QFile::ReadOnly | QIODevice::Text)) { - while (!file.atEnd()) { - QString line = file.readLine(); - line = line.trimmed(); - line = line.replace("\r", ""); - line = line.replace("\n", ""); - if (!line.isEmpty()) { - AppConfig::Datas.append(line); - } - } - - file.close(); - } - - if (AppConfig::Datas.count() == 0) { - AppConfig::Datas << "16 FF 01 01 E0 E1" << "16 FF 01 01 E1 E2"; - } -} - -void AppConfig::readDeviceData() -{ - //读取转发数据列表 - AppConfig::Keys.clear(); - AppConfig::Values.clear(); - QString fileName = QString("%1/%2").arg(QUIHelper::appPath()).arg(AppConfig::DeviceFileName); - QFile file(fileName); - if (file.size() > 0 && file.open(QFile::ReadOnly | QIODevice::Text)) { - while (!file.atEnd()) { - QString line = file.readLine(); - line = line.trimmed(); - line = line.replace("\r", ""); - line = line.replace("\n", ""); - if (!line.isEmpty()) { - QStringList list = line.split(";"); - QString key = list.at(0); - QString value; - for (int i = 1; i < list.count(); i++) { - value += QString("%1;").arg(list.at(i)); - } - - //去掉末尾分号 - value = value.mid(0, value.length() - 1); - AppConfig::Keys.append(key); - AppConfig::Values.append(value); - } - } - - file.close(); - } -} - -void AppConfig::saveData(const QString &data) -{ - if (data.length() <= 0) { - return; - } - - QString fileName = QString("%1/%2.txt").arg(QUIHelper::appPath()).arg(STRDATETIME); - QFile file(fileName); - if (file.open(QFile::WriteOnly | QFile::Text)) { - file.write(data.toUtf8()); - file.close(); - } -} diff --git a/nettool/api/appconfig.h b/nettool/api/appconfig.h index 5ae0beb..663c205 100644 --- a/nettool/api/appconfig.h +++ b/nettool/api/appconfig.h @@ -7,9 +7,6 @@ class AppConfig { public: static QString ConfigFile; //配置文件路径 - static QString SendFileName; //发送配置文件名 - static QString DeviceFileName; //模拟设备数据文件名 - static int CurrentIndex; //当前索引 //TCP客户端配置参数 @@ -19,7 +16,9 @@ public: static bool DebugTcpClient; //启用数据调试 static bool AutoSendTcpClient; //自动发送数据 static int IntervalTcpClient; //发送数据间隔 - static QString TcpServerIP; //服务器IP + static QString TcpBindIP; //绑定地址 + static int TcpBindPort; //绑定端口 + static QString TcpServerIP; //服务器地址 static int TcpServerPort; //服务器端口 //TCP服务器配置参数 @@ -40,7 +39,9 @@ public: static bool DebugUdpClient; //启用数据调试 static bool AutoSendUdpClient; //自动发送数据 static int IntervalUdpClient; //发送数据间隔 - static QString UdpServerIP; //服务器IP + static QString UdpBindIP; //绑定地址 + static int UdpBindPort; //绑定端口 + static QString UdpServerIP; //服务器地址 static int UdpServerPort; //服务器端口 //UDP服务器配置参数 @@ -61,7 +62,7 @@ public: static bool DebugWebClient; //启用数据调试 static bool AutoSendWebClient; //自动发送数据 static int IntervalWebClient; //发送数据间隔 - static QString WebServerIP; //服务器IP + static QString WebServerIP; //服务器地址 static int WebServerPort; //服务器端口 //WEB服务器配置参数 @@ -75,17 +76,9 @@ public: static int WebListenPort; //监听端口 static bool SelectAllWebServer; //选中所有 - //读写配置参数及其他操作 + //读写配置参数 static void readConfig(); //读取配置参数 static void writeConfig(); //写入配置参数 - - static QStringList Intervals; - static QStringList Datas; - static QStringList Keys; - static QStringList Values; - static void readSendData(); - static void readDeviceData(); - static void saveData(const QString &data); }; #endif // APPCONFIG_H diff --git a/nettool/api/appdata.cpp b/nettool/api/appdata.cpp new file mode 100644 index 0000000..7cbf7fa --- /dev/null +++ b/nettool/api/appdata.cpp @@ -0,0 +1,92 @@ +#include "appdata.h" +#include "quihelper.h" + +QStringList AppData::Intervals = QStringList(); +QStringList AppData::Datas = QStringList(); +QStringList AppData::Keys = QStringList(); +QStringList AppData::Values = QStringList(); + +QString AppData::SendFileName = "send.txt"; +void AppData::readSendData() +{ + //读取发送数据列表 + AppData::Datas.clear(); + QString fileName = QString("%1/%2").arg(QUIHelper::appPath()).arg(AppData::SendFileName); + QFile file(fileName); + if (file.size() > 0 && file.open(QFile::ReadOnly | QIODevice::Text)) { + while (!file.atEnd()) { + QString line = file.readLine(); + line = line.trimmed(); + line = line.replace("\r", ""); + line = line.replace("\n", ""); + if (!line.isEmpty()) { + AppData::Datas.append(line); + } + } + + file.close(); + } + + //没有的时候主动添加点免得太空 + if (AppData::Datas.count() == 0) { + AppData::Datas << "16 FF 01 01 E0 E1" << "16 FF 01 01 E1 E2"; + } +} + +QString AppData::DeviceFileName = "device.txt"; +void AppData::readDeviceData() +{ + //读取转发数据列表 + AppData::Keys.clear(); + AppData::Values.clear(); + QString fileName = QString("%1/%2").arg(QUIHelper::appPath()).arg(AppData::DeviceFileName); + QFile file(fileName); + if (file.size() > 0 && file.open(QFile::ReadOnly | QIODevice::Text)) { + while (!file.atEnd()) { + QString line = file.readLine(); + line = line.trimmed(); + line = line.replace("\r", ""); + line = line.replace("\n", ""); + if (!line.isEmpty()) { + QStringList list = line.split(";"); + QString key = list.at(0); + QString value; + for (int i = 1; i < list.count(); i++) { + value += QString("%1;").arg(list.at(i)); + } + + //去掉末尾分号 + value = value.mid(0, value.length() - 1); + AppData::Keys.append(key); + AppData::Values.append(value); + } + } + + file.close(); + } +} + +void AppData::saveData(const QString &data) +{ + if (data.length() <= 0) { + return; + } + + QString fileName = QString("%1/%2.txt").arg(QUIHelper::appPath()).arg(STRDATETIME); + QFile file(fileName); + if (file.open(QFile::WriteOnly | QFile::Text)) { + file.write(data.toUtf8()); + file.close(); + } +} + +void AppData::loadIP(QComboBox *cbox) +{ + //获取本机所有IP + QStringList ips = QUIHelper::getLocalIPs(); + cbox->clear(); + cbox->addItems(ips); + if (!ips.contains("127.0.0.1")) { + cbox->addItem("127.0.0.1"); + } +} diff --git a/nettool/api/appdata.h b/nettool/api/appdata.h new file mode 100644 index 0000000..13091c7 --- /dev/null +++ b/nettool/api/appdata.h @@ -0,0 +1,30 @@ +#ifndef APPDATA_H +#define APPDATA_H + +#include "head.h" + +class AppData +{ +public: + //全局变量 + static QStringList Intervals; + static QStringList Datas; + static QStringList Keys; + static QStringList Values; + + //读取发送数据列表 + static QString SendFileName; + static void readSendData(); + + //读取转发数据列表 + static QString DeviceFileName; + static void readDeviceData(); + + //保存数据到文件 + static void saveData(const QString &data); + + //添加网卡IP地址到下拉框 + static void loadIP(QComboBox *cbox); +}; + +#endif // APPDATA_H diff --git a/nettool/api/tcpclient.cpp b/nettool/api/tcpclient.cpp index 335b314..ba39afd 100644 --- a/nettool/api/tcpclient.cpp +++ b/nettool/api/tcpclient.cpp @@ -8,7 +8,11 @@ TcpClient::TcpClient(QTcpSocket *socket, QObject *parent) : QObject(parent) ip = ip.replace("::ffff:", ""); port = socket->peerPort(); +#if (QT_VERSION >= QT_VERSION_CHECK(6,0,0)) + connect(socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)),this, SLOT(disconnected())); +#else connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(disconnected())); +#endif connect(socket, SIGNAL(disconnected()), this, SLOT(disconnected())); connect(socket, SIGNAL(readyRead()), this, SLOT(readData())); } @@ -50,10 +54,10 @@ void TcpClient::readData() //自动回复数据,可以回复的数据是以;隔开,每行可以带多个;所以这里不需要继续判断 if (AppConfig::DebugTcpServer) { - int count = AppConfig::Keys.count(); + int count = AppData::Keys.count(); for (int i = 0; i < count; i++) { - if (AppConfig::Keys.at(i) == buffer) { - sendData(AppConfig::Values.at(i)); + if (AppData::Keys.at(i) == buffer) { + sendData(AppData::Values.at(i)); break; } } diff --git a/nettool/api/webclient.cpp b/nettool/api/webclient.cpp index 12d5423..93c5a5d 100644 --- a/nettool/api/webclient.cpp +++ b/nettool/api/webclient.cpp @@ -43,10 +43,10 @@ void WebClient::textFrameReceived(const QString &data, bool isLastFrame) //自动回复数据,可以回复的数据是以;隔开,每行可以带多个;所以这里不需要继续判断 if (AppConfig::DebugWebServer) { - int count = AppConfig::Keys.count(); + int count = AppData::Keys.count(); for (int i = 0; i < count; i++) { - if (AppConfig::Keys.at(i) == buffer) { - sendData(AppConfig::Values.at(i)); + if (AppData::Keys.at(i) == buffer) { + sendData(AppData::Values.at(i)); break; } } diff --git a/nettool/form/frmtcpclient.cpp b/nettool/form/frmtcpclient.cpp index ac19d8b..c0ba775 100644 --- a/nettool/form/frmtcpclient.cpp +++ b/nettool/form/frmtcpclient.cpp @@ -17,18 +17,28 @@ frmTcpClient::~frmTcpClient() void frmTcpClient::initForm() { isOk = false; + + //实例化对象并绑定信号槽 socket = new QTcpSocket(this); connect(socket, SIGNAL(connected()), this, SLOT(connected())); +#if (QT_VERSION >= QT_VERSION_CHECK(6,0,0)) + connect(socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)),this, SLOT(disconnected())); +#else connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(disconnected())); +#endif connect(socket, SIGNAL(disconnected()), this, SLOT(disconnected())); connect(socket, SIGNAL(readyRead()), this, SLOT(readData())); + //定时器发送数据 timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(on_btnSend_clicked())); - ui->cboxInterval->addItems(AppConfig::Intervals); - ui->cboxData->addItems(AppConfig::Datas); + //填充数据到下拉框 + ui->cboxInterval->addItems(AppData::Intervals); + ui->cboxData->addItems(AppData::Datas); + AppData::loadIP(ui->cboxBindIP); + //打印下外网地址 #ifndef emsdk QString ip = QUIHelper::getNetIP(QUIHelper::getHtml("http://whois.pconline.com.cn/")); append(1, QString("外网IP -> %1").arg(ip)); @@ -55,13 +65,19 @@ void frmTcpClient::initConfig() ui->cboxInterval->setCurrentIndex(ui->cboxInterval->findText(QString::number(AppConfig::IntervalTcpClient))); connect(ui->cboxInterval, SIGNAL(currentIndexChanged(int)), this, SLOT(saveConfig())); + ui->cboxBindIP->setCurrentIndex(ui->cboxBindIP->findText(AppConfig::TcpBindIP)); + connect(ui->cboxBindIP, SIGNAL(currentIndexChanged(int)), this, SLOT(saveConfig())); + + ui->txtBindPort->setText(QString::number(AppConfig::TcpBindPort)); + connect(ui->txtBindPort, SIGNAL(textChanged(QString)), this, SLOT(saveConfig())); + ui->txtServerIP->setText(AppConfig::TcpServerIP); connect(ui->txtServerIP, SIGNAL(textChanged(QString)), this, SLOT(saveConfig())); ui->txtServerPort->setText(QString::number(AppConfig::TcpServerPort)); connect(ui->txtServerPort, SIGNAL(textChanged(QString)), this, SLOT(saveConfig())); - this->changeTimer(); + this->initTimer(); } void frmTcpClient::saveConfig() @@ -72,16 +88,21 @@ void frmTcpClient::saveConfig() AppConfig::DebugTcpClient = ui->ckDebug->isChecked(); AppConfig::AutoSendTcpClient = ui->ckAutoSend->isChecked(); AppConfig::IntervalTcpClient = ui->cboxInterval->currentText().toInt(); + AppConfig::TcpBindIP = ui->cboxBindIP->currentText(); + AppConfig::TcpBindPort = ui->txtBindPort->text().trimmed().toInt(); AppConfig::TcpServerIP = ui->txtServerIP->text().trimmed(); AppConfig::TcpServerPort = ui->txtServerPort->text().trimmed().toInt(); AppConfig::writeConfig(); - this->changeTimer(); + this->initTimer(); } -void frmTcpClient::changeTimer() +void frmTcpClient::initTimer() { - timer->setInterval(AppConfig::IntervalTcpClient); + if (timer->interval() != AppConfig::IntervalTcpClient) { + timer->setInterval(AppConfig::IntervalTcpClient); + } + if (AppConfig::AutoSendTcpClient) { if (!timer->isActive()) { timer->start(); @@ -168,10 +189,10 @@ void frmTcpClient::readData() //自动回复数据,可以回复的数据是以;隔开,每行可以带多个;所以这里不需要继续判断 if (AppConfig::DebugTcpClient) { - int count = AppConfig::Keys.count(); + int count = AppData::Keys.count(); for (int i = 0; i < count; i++) { - if (AppConfig::Keys.at(i) == buffer) { - sendData(AppConfig::Values.at(i)); + if (AppData::Keys.at(i) == buffer) { + sendData(AppData::Values.at(i)); break; } } @@ -196,7 +217,13 @@ void frmTcpClient::sendData(const QString &data) void frmTcpClient::on_btnConnect_clicked() { if (ui->btnConnect->text() == "连接") { + //断开所有连接和操作 socket->abort(); + //绑定网卡和端口 +#if (QT_VERSION >= QT_VERSION_CHECK(5,0,0)) + socket->bind(QHostAddress(AppConfig::TcpBindIP), AppConfig::TcpBindPort); +#endif + //连接服务器 socket->connectToHost(AppConfig::TcpServerIP, AppConfig::TcpServerPort); } else { socket->abort(); @@ -206,7 +233,7 @@ void frmTcpClient::on_btnConnect_clicked() void frmTcpClient::on_btnSave_clicked() { QString data = ui->txtMain->toPlainText(); - AppConfig::saveData(data); + AppData::saveData(data); on_btnClear_clicked(); } diff --git a/nettool/form/frmtcpclient.h b/nettool/form/frmtcpclient.h index 31efd8f..66c88ed 100644 --- a/nettool/form/frmtcpclient.h +++ b/nettool/form/frmtcpclient.h @@ -27,7 +27,7 @@ private slots: void initForm(); void initConfig(); void saveConfig(); - void changeTimer(); + void initTimer(); void append(int type, const QString &data, bool clear = false); private slots: diff --git a/nettool/form/frmtcpclient.ui b/nettool/form/frmtcpclient.ui index 0c4cd9f..4675e0e 100644 --- a/nettool/form/frmtcpclient.ui +++ b/nettool/form/frmtcpclient.ui @@ -53,7 +53,7 @@ QFrame::Sunken - + 6 @@ -111,6 +111,26 @@ + + + + 绑定地址 + + + + + + + + + + 绑定端口 + + + + + + @@ -220,6 +240,25 @@ + + txtMain + cboxData + btnSend + ckHexReceive + ckHexSend + ckAscii + ckShow + ckDebug + ckAutoSend + cboxInterval + cboxBindIP + txtBindPort + txtServerIP + txtServerPort + btnConnect + btnSave + btnClear + diff --git a/nettool/form/frmtcpserver.cpp b/nettool/form/frmtcpserver.cpp index 5ea4938..006a257 100644 --- a/nettool/form/frmtcpserver.cpp +++ b/nettool/form/frmtcpserver.cpp @@ -17,24 +17,22 @@ frmTcpServer::~frmTcpServer() void frmTcpServer::initForm() { isOk = false; + + //实例化对象并绑定信号槽 server = new TcpServer(this); connect(server, SIGNAL(clientConnected(QString, int)), this, SLOT(clientConnected(QString, int))); connect(server, SIGNAL(clientDisconnected(QString, int)), this, SLOT(clientDisconnected(QString, int))); connect(server, SIGNAL(sendData(QString, int, QString)), this, SLOT(sendData(QString, int, QString))); connect(server, SIGNAL(receiveData(QString, int, QString)), this, SLOT(receiveData(QString, int, QString))); + //定时器发送数据 timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(on_btnSend_clicked())); - ui->cboxInterval->addItems(AppConfig::Intervals); - ui->cboxData->addItems(AppConfig::Datas); - - //获取本机所有IP - QStringList ips = QUIHelper::getLocalIPs(); - ui->cboxListenIP->addItems(ips); - if (!ips.contains("127.0.0.1")) { - ui->cboxListenIP->addItem("127.0.0.1"); - } + //填充数据到下拉框 + ui->cboxInterval->addItems(AppData::Intervals); + ui->cboxData->addItems(AppData::Datas); + AppData::loadIP(ui->cboxListenIP); } void frmTcpServer::initConfig() @@ -66,7 +64,7 @@ void frmTcpServer::initConfig() ui->ckSelectAll->setChecked(AppConfig::SelectAllTcpServer); connect(ui->ckSelectAll, SIGNAL(stateChanged(int)), this, SLOT(saveConfig())); - this->changeTimer(); + this->initTimer(); } void frmTcpServer::saveConfig() @@ -82,12 +80,15 @@ void frmTcpServer::saveConfig() AppConfig::SelectAllTcpServer = ui->ckSelectAll->isChecked(); AppConfig::writeConfig(); - this->changeTimer(); + this->initTimer(); } -void frmTcpServer::changeTimer() +void frmTcpServer::initTimer() { - timer->setInterval(AppConfig::IntervalTcpServer); + if (timer->interval() != AppConfig::IntervalTcpServer) { + timer->setInterval(AppConfig::IntervalTcpServer); + } + if (AppConfig::AutoSendTcpServer) { if (!timer->isActive()) { timer->start(); @@ -192,7 +193,7 @@ void frmTcpServer::on_btnListen_clicked() void frmTcpServer::on_btnSave_clicked() { QString data = ui->txtMain->toPlainText(); - AppConfig::saveData(data); + AppData::saveData(data); on_btnClear_clicked(); } diff --git a/nettool/form/frmtcpserver.h b/nettool/form/frmtcpserver.h index 77174e9..49b51cf 100644 --- a/nettool/form/frmtcpserver.h +++ b/nettool/form/frmtcpserver.h @@ -27,7 +27,7 @@ private slots: void initForm(); void initConfig(); void saveConfig(); - void changeTimer(); + void initTimer(); void append(int type, const QString &data, bool clear = false); private slots: diff --git a/nettool/form/frmtcpserver.ui b/nettool/form/frmtcpserver.ui index 48ea61f..1f8d387 100644 --- a/nettool/form/frmtcpserver.ui +++ b/nettool/form/frmtcpserver.ui @@ -248,6 +248,8 @@ txtMain + cboxData + btnSend ckHexReceive ckHexSend ckAscii @@ -263,8 +265,6 @@ btnClose listWidget ckSelectAll - cboxData - btnSend diff --git a/nettool/form/frmudpclient.cpp b/nettool/form/frmudpclient.cpp index c24e9e4..94b2c1e 100644 --- a/nettool/form/frmudpclient.cpp +++ b/nettool/form/frmudpclient.cpp @@ -16,14 +16,18 @@ frmUdpClient::~frmUdpClient() void frmUdpClient::initForm() { + //实例化对象并绑定信号槽 socket = new QUdpSocket(this); connect(socket, SIGNAL(readyRead()), this, SLOT(readData())); + //定时器发送数据 timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(on_btnSend_clicked())); - ui->cboxInterval->addItems(AppConfig::Intervals); - ui->cboxData->addItems(AppConfig::Datas); + //填充数据到下拉框 + ui->cboxInterval->addItems(AppData::Intervals); + ui->cboxData->addItems(AppData::Datas); + AppData::loadIP(ui->cboxBindIP); } void frmUdpClient::initConfig() @@ -46,13 +50,19 @@ void frmUdpClient::initConfig() ui->cboxInterval->setCurrentIndex(ui->cboxInterval->findText(QString::number(AppConfig::IntervalUdpClient))); connect(ui->cboxInterval, SIGNAL(currentIndexChanged(int)), this, SLOT(saveConfig())); + ui->cboxBindIP->setCurrentIndex(ui->cboxBindIP->findText(AppConfig::UdpBindIP)); + connect(ui->cboxBindIP, SIGNAL(currentIndexChanged(int)), this, SLOT(saveConfig())); + + ui->txtBindPort->setText(QString::number(AppConfig::UdpBindPort)); + connect(ui->txtBindPort, SIGNAL(textChanged(QString)), this, SLOT(saveConfig())); + ui->txtServerIP->setText(AppConfig::UdpServerIP); connect(ui->txtServerIP, SIGNAL(textChanged(QString)), this, SLOT(saveConfig())); ui->txtServerPort->setText(QString::number(AppConfig::UdpServerPort)); connect(ui->txtServerPort, SIGNAL(textChanged(QString)), this, SLOT(saveConfig())); - this->changeTimer(); + this->initTimer(); } void frmUdpClient::saveConfig() @@ -63,16 +73,21 @@ void frmUdpClient::saveConfig() AppConfig::DebugUdpClient = ui->ckDebug->isChecked(); AppConfig::AutoSendUdpClient = ui->ckAutoSend->isChecked(); AppConfig::IntervalUdpClient = ui->cboxInterval->currentText().toInt(); + AppConfig::UdpBindIP = ui->cboxBindIP->currentText(); + AppConfig::UdpBindPort = ui->txtBindPort->text().trimmed().toInt(); AppConfig::UdpServerIP = ui->txtServerIP->text().trimmed(); AppConfig::UdpServerPort = ui->txtServerPort->text().trimmed().toInt(); AppConfig::writeConfig(); - this->changeTimer(); + this->initTimer(); } -void frmUdpClient::changeTimer() +void frmUdpClient::initTimer() { - timer->setInterval(AppConfig::IntervalUdpClient); + if (timer->interval() != AppConfig::IntervalUdpClient) { + timer->setInterval(AppConfig::IntervalUdpClient); + } + if (AppConfig::AutoSendUdpClient) { if (!timer->isActive()) { timer->start(); @@ -153,10 +168,10 @@ void frmUdpClient::readData() append(1, str); if (AppConfig::DebugUdpClient) { - int count = AppConfig::Keys.count(); + int count = AppData::Keys.count(); for (int i = 0; i < count; i++) { - if (AppConfig::Keys.at(i) == buffer) { - sendData(ip, port, AppConfig::Values.at(i)); + if (AppData::Keys.at(i) == buffer) { + sendData(ip, port, AppData::Values.at(i)); break; } } @@ -175,6 +190,13 @@ void frmUdpClient::sendData(const QString &ip, int port, const QString &data) buffer = data.toUtf8(); } + //绑定网卡和端口 + if (socket->localPort() != AppConfig::UdpBindPort) { + socket->abort(); + socket->bind(QHostAddress(AppConfig::UdpBindIP), AppConfig::UdpBindPort); + } + + //指定地址和端口发送数据 socket->writeDatagram(buffer, QHostAddress(ip), port); QString str = QString("[%1:%2] %3").arg(ip).arg(port).arg(data); @@ -184,7 +206,7 @@ void frmUdpClient::sendData(const QString &ip, int port, const QString &data) void frmUdpClient::on_btnSave_clicked() { QString data = ui->txtMain->toPlainText(); - AppConfig::saveData(data); + AppData::saveData(data); on_btnClear_clicked(); } diff --git a/nettool/form/frmudpclient.h b/nettool/form/frmudpclient.h index 762607f..89c85b0 100644 --- a/nettool/form/frmudpclient.h +++ b/nettool/form/frmudpclient.h @@ -26,7 +26,7 @@ private slots: void initForm(); void initConfig(); void saveConfig(); - void changeTimer(); + void initTimer(); void append(int type, const QString &data, bool clear = false); private slots: diff --git a/nettool/form/frmudpclient.ui b/nettool/form/frmudpclient.ui index 70d430c..360a19e 100644 --- a/nettool/form/frmudpclient.ui +++ b/nettool/form/frmudpclient.ui @@ -53,7 +53,7 @@ QFrame::Sunken - + 6 @@ -111,10 +111,30 @@ + + + + 绑定地址 + + + + + + + + + + 绑定端口 + + + + + + - 远程地址 + 服务器地址 @@ -124,7 +144,7 @@ - 远程端口 + 服务器端口 @@ -213,6 +233,24 @@ + + txtMain + cboxData + btnSend + ckHexReceive + ckHexSend + ckAscii + ckShow + ckDebug + ckAutoSend + cboxInterval + cboxBindIP + txtBindPort + txtServerIP + txtServerPort + btnSave + btnClear + diff --git a/nettool/form/frmudpserver.cpp b/nettool/form/frmudpserver.cpp index 42775d5..f61388a 100644 --- a/nettool/form/frmudpserver.cpp +++ b/nettool/form/frmudpserver.cpp @@ -16,21 +16,18 @@ frmUdpServer::~frmUdpServer() void frmUdpServer::initForm() { + //实例化对象并绑定信号槽 socket = new QUdpSocket(this); connect(socket, SIGNAL(readyRead()), this, SLOT(readData())); + //定时器发送数据 timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(on_btnSend_clicked())); - ui->cboxInterval->addItems(AppConfig::Intervals); - ui->cboxData->addItems(AppConfig::Datas); - - //获取本机所有IP - QStringList ips = QUIHelper::getLocalIPs(); - ui->cboxListenIP->addItems(ips); - if (!ips.contains("127.0.0.1")) { - ui->cboxListenIP->addItem("127.0.0.1"); - } + //填充数据到下拉框 + ui->cboxInterval->addItems(AppData::Intervals); + ui->cboxData->addItems(AppData::Datas); + AppData::loadIP(ui->cboxListenIP); } void frmUdpServer::initConfig() @@ -62,7 +59,7 @@ void frmUdpServer::initConfig() ui->ckSelectAll->setChecked(AppConfig::SelectAllUdpServer); connect(ui->ckSelectAll, SIGNAL(stateChanged(int)), this, SLOT(saveConfig())); - this->changeTimer(); + this->initTimer(); } void frmUdpServer::saveConfig() @@ -78,12 +75,15 @@ void frmUdpServer::saveConfig() AppConfig::SelectAllUdpServer = ui->ckSelectAll->isChecked(); AppConfig::writeConfig(); - this->changeTimer(); + this->initTimer(); } -void frmUdpServer::changeTimer() +void frmUdpServer::initTimer() { - timer->setInterval(AppConfig::IntervalUdpServer); + if (timer->interval() != AppConfig::IntervalUdpServer) { + timer->setInterval(AppConfig::IntervalUdpServer); + } + if (AppConfig::AutoSendUdpServer) { if (!timer->isActive()) { timer->start(); @@ -165,10 +165,10 @@ void frmUdpServer::readData() clientConnected(ip, port); if (AppConfig::DebugUdpServer) { - int count = AppConfig::Keys.count(); + int count = AppData::Keys.count(); for (int i = 0; i < count; i++) { - if (AppConfig::Keys.at(i) == buffer) { - sendData(ip, port, AppConfig::Values.at(i)); + if (AppData::Keys.at(i) == buffer) { + sendData(ip, port, AppData::Values.at(i)); break; } } @@ -225,7 +225,7 @@ void frmUdpServer::on_btnListen_clicked() void frmUdpServer::on_btnSave_clicked() { QString data = ui->txtMain->toPlainText(); - AppConfig::saveData(data); + AppData::saveData(data); on_btnClear_clicked(); } diff --git a/nettool/form/frmudpserver.h b/nettool/form/frmudpserver.h index 436a779..05e711b 100644 --- a/nettool/form/frmudpserver.h +++ b/nettool/form/frmudpserver.h @@ -26,7 +26,7 @@ private slots: void initForm(); void initConfig(); void saveConfig(); - void changeTimer(); + void initTimer(); void append(int type, const QString &data, bool clear = false); private slots: diff --git a/nettool/form/frmudpserver.ui b/nettool/form/frmudpserver.ui index 25f8279..97468d2 100644 --- a/nettool/form/frmudpserver.ui +++ b/nettool/form/frmudpserver.ui @@ -241,6 +241,8 @@ txtMain + cboxData + btnSend ckHexReceive ckHexSend ckAscii @@ -253,8 +255,8 @@ btnListen btnSave btnClear - cboxData - btnSend + listWidget + ckSelectAll diff --git a/nettool/form/frmwebclient.cpp b/nettool/form/frmwebclient.cpp index 274b132..9fefb11 100644 --- a/nettool/form/frmwebclient.cpp +++ b/nettool/form/frmwebclient.cpp @@ -17,6 +17,8 @@ frmWebClient::~frmWebClient() void frmWebClient::initForm() { isOk = false; + + //实例化对象并绑定信号槽 socket = new QWebSocket("WebSocket", QWebSocketProtocol::VersionLatest, this); connect(socket, SIGNAL(connected()), this, SLOT(connected())); connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(disconnected())); @@ -29,11 +31,13 @@ void frmWebClient::initForm() //connect(socket, SIGNAL(textFrameReceived(QString, bool)), this, SLOT(textFrameReceived(QString, bool))); //connect(socket, SIGNAL(binaryFrameReceived(QByteArray, bool)), this, SLOT(binaryFrameReceived(QByteArray, bool))); + //定时器发送数据 timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(on_btnSend_clicked())); - ui->cboxInterval->addItems(AppConfig::Intervals); - ui->cboxData->addItems(AppConfig::Datas); + //填充数据到下拉框 + ui->cboxInterval->addItems(AppData::Intervals); + ui->cboxData->addItems(AppData::Datas); } void frmWebClient::initConfig() @@ -62,7 +66,7 @@ void frmWebClient::initConfig() ui->txtServerPort->setText(QString::number(AppConfig::WebServerPort)); connect(ui->txtServerPort, SIGNAL(textChanged(QString)), this, SLOT(saveConfig())); - this->changeTimer(); + this->initTimer(); } void frmWebClient::saveConfig() @@ -77,12 +81,15 @@ void frmWebClient::saveConfig() AppConfig::WebServerPort = ui->txtServerPort->text().trimmed().toInt(); AppConfig::writeConfig(); - this->changeTimer(); + this->initTimer(); } -void frmWebClient::changeTimer() +void frmWebClient::initTimer() { - timer->setInterval(AppConfig::IntervalWebClient); + if (timer->interval() != AppConfig::IntervalWebClient) { + timer->setInterval(AppConfig::IntervalWebClient); + } + if (AppConfig::AutoSendWebClient) { if (!timer->isActive()) { timer->start(); @@ -174,10 +181,10 @@ void frmWebClient::textFrameReceived(const QString &data, bool isLastFrame) //自动回复数据,可以回复的数据是以;隔开,每行可以带多个;所以这里不需要继续判断 if (AppConfig::DebugWebClient) { - int count = AppConfig::Keys.count(); + int count = AppData::Keys.count(); for (int i = 0; i < count; i++) { - if (AppConfig::Keys.at(i) == buffer) { - sendData(AppConfig::Values.at(i)); + if (AppData::Keys.at(i) == buffer) { + sendData(AppData::Values.at(i)); break; } } @@ -220,7 +227,7 @@ void frmWebClient::on_btnConnect_clicked() void frmWebClient::on_btnSave_clicked() { QString data = ui->txtMain->toPlainText(); - AppConfig::saveData(data); + AppData::saveData(data); on_btnClear_clicked(); } diff --git a/nettool/form/frmwebclient.h b/nettool/form/frmwebclient.h index ee6f9a4..7533d2f 100644 --- a/nettool/form/frmwebclient.h +++ b/nettool/form/frmwebclient.h @@ -27,7 +27,7 @@ private slots: void initForm(); void initConfig(); void saveConfig(); - void changeTimer(); + void initTimer(); void append(int type, const QString &data, bool clear = false); private slots: diff --git a/nettool/form/frmwebserver.cpp b/nettool/form/frmwebserver.cpp index fcd2777..792404f 100644 --- a/nettool/form/frmwebserver.cpp +++ b/nettool/form/frmwebserver.cpp @@ -17,24 +17,22 @@ frmWebServer::~frmWebServer() void frmWebServer::initForm() { isOk = false; + + //实例化对象并绑定信号槽 server = new WebServer("WebServer", QWebSocketServer::NonSecureMode, this); connect(server, SIGNAL(clientConnected(QString, int)), this, SLOT(clientConnected(QString, int))); connect(server, SIGNAL(clientDisconnected(QString, int)), this, SLOT(clientDisconnected(QString, int))); connect(server, SIGNAL(sendData(QString, int, QString)), this, SLOT(sendData(QString, int, QString))); connect(server, SIGNAL(receiveData(QString, int, QString)), this, SLOT(receiveData(QString, int, QString))); + //定时器发送数据 timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(on_btnSend_clicked())); - ui->cboxInterval->addItems(AppConfig::Intervals); - ui->cboxData->addItems(AppConfig::Datas); - - //获取本机所有IP - QStringList ips = QUIHelper::getLocalIPs(); - ui->cboxListenIP->addItems(ips); - if (!ips.contains("127.0.0.1")) { - ui->cboxListenIP->addItem("127.0.0.1"); - } + //填充数据到下拉框 + ui->cboxInterval->addItems(AppData::Intervals); + ui->cboxData->addItems(AppData::Datas); + AppData::loadIP(ui->cboxListenIP); } void frmWebServer::initConfig() @@ -66,7 +64,7 @@ void frmWebServer::initConfig() ui->ckSelectAll->setChecked(AppConfig::SelectAllWebServer); connect(ui->ckSelectAll, SIGNAL(stateChanged(int)), this, SLOT(saveConfig())); - this->changeTimer(); + this->initTimer(); } void frmWebServer::saveConfig() @@ -82,12 +80,15 @@ void frmWebServer::saveConfig() AppConfig::SelectAllWebServer = ui->ckSelectAll->isChecked(); AppConfig::writeConfig(); - this->changeTimer(); + this->initTimer(); } -void frmWebServer::changeTimer() +void frmWebServer::initTimer() { - timer->setInterval(AppConfig::IntervalWebServer); + if (timer->interval() != AppConfig::IntervalWebServer) { + timer->setInterval(AppConfig::IntervalWebServer); + } + if (AppConfig::AutoSendWebServer) { if (!timer->isActive()) { timer->start(); @@ -192,7 +193,7 @@ void frmWebServer::on_btnListen_clicked() void frmWebServer::on_btnSave_clicked() { QString data = ui->txtMain->toPlainText(); - AppConfig::saveData(data); + AppData::saveData(data); on_btnClear_clicked(); } diff --git a/nettool/form/frmwebserver.h b/nettool/form/frmwebserver.h index 9048bd8..c09b11b 100644 --- a/nettool/form/frmwebserver.h +++ b/nettool/form/frmwebserver.h @@ -27,7 +27,7 @@ private slots: void initForm(); void initConfig(); void saveConfig(); - void changeTimer(); + void initTimer(); void append(int type, const QString &data, bool clear = false); private slots: diff --git a/nettool/form/frmwebserver.ui b/nettool/form/frmwebserver.ui index 964ad6e..1b3fc76 100644 --- a/nettool/form/frmwebserver.ui +++ b/nettool/form/frmwebserver.ui @@ -246,6 +246,26 @@ + + txtMain + cboxData + btnSend + ckHexReceive + ckHexSend + ckAscii + ckShow + ckDebug + ckAutoSend + cboxInterval + cboxListenIP + txtListenPort + btnListen + btnSave + btnClear + btnClose + listWidget + ckSelectAll + diff --git a/nettool/head.h b/nettool/head.h index 7adfea8..612e37c 100644 --- a/nettool/head.h +++ b/nettool/head.h @@ -15,3 +15,4 @@ #pragma execution_character_set("utf-8") #include "appconfig.h" +#include "appdata.h" diff --git a/nettool/main.cpp b/nettool/main.cpp index 3d1ad9d..f802695 100644 --- a/nettool/main.cpp +++ b/nettool/main.cpp @@ -13,11 +13,12 @@ int main(int argc, char *argv[]) QUIHelper::setTranslator(":/widgets.qm"); QUIHelper::initRand(); - AppConfig::Intervals << "1" << "10" << "20" << "50" << "100" << "200" << "300" << "500" << "1000" << "1500" << "2000" << "3000" << "5000" << "10000"; AppConfig::ConfigFile = QString("%1/%2.ini").arg(QUIHelper::appPath()).arg(QUIHelper::appName()); AppConfig::readConfig(); - AppConfig::readSendData(); - AppConfig::readDeviceData(); + + AppData::Intervals << "1" << "10" << "20" << "50" << "100" << "200" << "300" << "500" << "1000" << "1500" << "2000" << "3000" << "5000" << "10000"; + AppData::readSendData(); + AppData::readDeviceData(); frmMain w; w.setWindowTitle("网络调试助手 V2021 (QQ: 517216493 WX: feiyangqingyun)"); diff --git a/vlcdemo/readme.md b/vlcdemo/readme.md index d65e1a8..9ddf8eb 100644 --- a/vlcdemo/readme.md +++ b/vlcdemo/readme.md @@ -1,5 +1,5 @@ -### 特别说明 -1. 编译完成以后记得将dll文件复制到可执行文件同一目录。 +### 特别说明 +1. 编译完成以后记得将动态库文件复制到可执行文件同一目录。 2. 动态库地址:[https://pan.baidu.com/s/13LDRu6mXC6gaADtrGprNVA](https://pan.baidu.com/s/13LDRu6mXC6gaADtrGprNVA) 提取码: ujm7 3. 收费增强版:[https://qtchina.blog.csdn.net/article/details/103946067](https://qtchina.blog.csdn.net/article/details/103946067)