<h1><span style="color:#f33b45;">一、环境介绍</span></h1>
<p><span style="color:#3399ea;"><strong>操作系统:</strong> </span>win10 64位</p>
<p><span style="color:#3399ea;"><strong>QT版本: </strong></span> QT5.12.6</p>
<p><span style="color:#3399ea;"><strong>编译器:</strong> </span> MinGW 32</p>
<p>TCP网络调试助手,在网络相关开发、嵌入式开发里使用较多,主要用来测试网络传输,调试等等。</p>
<p>这个版本设计的比较早,没有加入多线程处理连接上来的客户端,一般的调试场景已经满足。对于基本的QT网络开发入门学习借鉴已经足够了。</p>
<p><span style="color:#f33b45;"><strong>软件下载:</strong></span> <a href="https://download.csdn.net/download/xiaolong1126626497/17044958">https://download.csdn.net/download/xiaolong1126626497/17044958</a></p>
<p><strong><span style="color:#f33b45;">工程完整源代码下载:</span></strong> <a href="https://download.csdn.net/download/xiaolong1126626497/17058921">https://download.csdn.net/download/xiaolong1126626497/17058921</a></p>
<h1><span style="color:#f33b45;">二、效果图</span></h1>
<p><img alt="" height="1080" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-a50c1f23db87c9a7bee1205b2055a0b3.png" width="1200"></p>
<p><img alt="" height="1080" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-c64b2cb3556ce59d420aaaa261b1f83a.png" width="1200"></p>
<h1><span style="color:#f33b45;">三、源代码</span></h1>
<h2><span style="color:#3399ea;">3.1 widget.cpp</span></h2>
<pre class="blockcode"><code class="language-cpp">#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
setWindowIcon(QIcon(":/image/14g.png")); //设置图标
SetStyle(":/qss/blue.css"); //设置样式表
setWindowTitle("TCP网络调试助手_v2.2 2020年7月11日");
comboBox_config();
timer = new QTimer(this); //创建定时器
connect(timer, SIGNAL(timeout()), this, SLOT(update())); //关联槽函数
/*控件名字设置*/
ui->checkBox_ShowTime->setText("接收时间显示");
ui->checkBox_TxBit->setText("自动发送附加位\\r\\n");
ui->checkBox_LoopTx->setText("循环发送数据");
ui->label_4->setText("设置循环间隔ms时间:");
ui->pushButton_connect->setText("连接");
ui->pushButton_SendData->setText("发送");
ui->About->setText("帮助");
ui->label->setText("1.协议类型");
ui->label_ip->setText("2.本地IP地址");
ui->label_prot->setText("3.本地端口");
ui->label_SendCnt->setText("TX");
ui->label_RxCnt->setText("RX");
ui->pushButton_clear->setText("复位");
ui->plainTextEdit_ShowData->setReadOnly(true);
ui->pushButton_cleanShow->setText("清除显示");
}
//设置指定样式
void Widget::SetStyle(const QString &qssFile) {
QFile file(qssFile);
if (file.open(QFile::ReadOnly)) {
QString qss = QLatin1String(file.readAll());
qApp->setStyleSheet(qss);
QString PaletteColor = qss.mid(20, 7);
qApp->setPalette(QPalette(QColor(PaletteColor)));
file.close();
}
}
//基本配置
void Widget::comboBox_config()
{
/*第一部分:网络设置*/
//1.1 配置协议
ui->comboBox_protocol->addItem("TCP Server");
ui->comboBox_protocol->addItem("TCP Client");
//1.2. 获取并配置本地IP地址
QList<QHostAddress> list = QNetworkInterface::allAddresses();
for(int i=0;i<list.count();i++)
{
QHostAddress addr=list.at(i);
if(addr.protocol() == QAbstractSocket::IPv4Protocol)
{
ui->comboBox_ipaddress->addItem(addr.toString());
}
}
//1.3 设置可编辑性
ui->comboBox_ipaddress->setEditable(true);
//1.4. 设置默认端口号
ui->lineEdit_prot->setText("8080");
/*第二部分:发送设置*/
//2.1设置循环发送时间
ui->lineEdi_LoopTime->setText("1000");
//2.2 设置默认发送的内容
ui->lineEdit_InputTxDtat->setText("https://blog.csdn.net/xiaolong1126626497");
//接收数量置0
TxCount=0;
RxCount=0;
/*第三部分:选择客户端时用于显示本地端口和IP*/
ClientShowLocalProtLabel =new QLabel("本地端口:");
ClientShowLocalIptLabel =new QLabel("本地IP地址:");
ClientEditProt= new QLineEdit;
ClientEditIP= new QLineEdit;
ClientLayout = new QHBoxLayout;
ClientLayout->addWidget(ClientShowLocalIptLabel);
ClientLayout->addWidget(ClientEditIP);
ClientLayout->addWidget(ClientShowLocalProtLabel);
ClientLayout->addWidget(ClientEditProt);
/*第四部分:选服务器时用于显示已经连接的客户端*/
SaverShowLocalProtLabel =new QLabel("已连接的客户端列表:");
ClientComboBoxList=new QComboBox;
ClientComboBoxList->setMinimumWidth(180);
ServerLayout = new QHBoxLayout;
Serve |
|