QT-通用TCP客户端使用工具
QT-通用TCP客户端程序
- 前言
- 一、演示效果
- 二、关键程序
- 三、程序链接
前言
简单TCP客户端测试工具,满足基本通讯测试和应用。
一、演示效果
二、关键程序
代码如下:
#include "SWJTcpClientTool.h"
#include "SocketClient.h"
#include "PParamProtocol.h"
#include <QTimer>
#include <QTime>
#include <QComboBox>#define D_ITEM_CUSTOMER QString(u8"自定义")
#define D_ITEM_N QString(u8"换行(\\n)")
#define D_ITEM_R QString(u8"回车(\\r)")
#define D_ITEM_R_N QString(u8"回车换行(\\r\\n)")// 不阻塞定时器
struct sMainTimer
{QTime time;uint32_t interval;void start(uint32_t t){interval = t;time.start();};bool isTimeOut(){return time.elapsed() > interval;};
};SWJTcpClientTool::SWJTcpClientTool(QWidget *parent): QMainWindow(parent)
{ui.setupUi(this);m_pPParam = new PParamProtocol(this);m_pSocketClient = new cSocketClient();QTimer *pTimer = new QTimer();pTimer->start(10);QStringList items;items << D_ITEM_N << D_ITEM_R << D_ITEM_R_N << D_ITEM_CUSTOMER;ui.comboBoxEndString->addItems(items);connect(pTimer, &QTimer::timeout, this, &SWJTcpClientTool::slotTimeout);connect(ui.btnConnect, &QPushButton::clicked, this, &SWJTcpClientTool::slotBtnConnect);connect(ui.btnSend, &QPushButton::clicked, this, &SWJTcpClientTool::slotBtnSend);connect(ui.btnClear, &QPushButton::clicked, this, &SWJTcpClientTool::slotBtnRecieveClear);
}void SWJTcpClientTool::slotBtnConnect()
{QString strIp = ui.lineEditIp->text();int nPort = ui.lineEditPort->text().toInt();m_pSocketClient->connect(strIp, nPort);
}void SWJTcpClientTool::slotBtnRecieveClear()
{ui.textEditRecieve->clear();
}void SWJTcpClientTool::slotBtnSend()
{QString strText = ui.textEditSend->toPlainText();QString strEndString = ui.lineEditEndString->text();QString strSend = "";QString strCbxText = ui.comboBoxEndString->currentText();if (strCbxText == D_ITEM_CUSTOMER)strSend = strText + strEndString;else if (strCbxText == D_ITEM_N)strSend = strText + "\n";else if (strCbxText == D_ITEM_R)strSend = strText + "\r";else if (strCbxText == D_ITEM_R_N)strSend = strText + "\r\n";elsestrSend = strText;m_pSocketClient->sendData(strSend);}void SWJTcpClientTool::slotTimeout()
{// 连接状态if (true){if (m_pSocketClient->isConnected()){ui.labelState->setText(QString(u8"已连接"));ui.btnConnect->setText(QString(u8"已连接"));ui.labelIO->setPixmap(QPixmap(u8":/Image/IO开.png"));}else{ui.btnConnect->setText(QString(u8"连接"));ui.labelState->setText(QString(u8"未连接"));ui.labelIO->setPixmap(QPixmap(u8":/Image/IO关.png"));}}// 接受数据if (true){QString strRiceve = m_pSocketClient->getRecieveData();if (!strRiceve.isEmpty())ui.textEditRecieve->insertPlainText(strRiceve);}// 自动发送if (true){bool bCheck = ui.radioAutoSend->isChecked();int nTimes = ui.lineEditTimes->text().toInt();static int nStep = 0;static sMainTimer timeout;switch (nStep){case 0:{if (bCheck){timeout.start(nTimes);nStep = 1;}}break;case 1:{if (timeout.isTimeOut()){QString strText = ui.textEditSend->toPlainText();QString strEndString = ui.lineEditEndString->text();QString strSend = "";QString strCbxText = ui.comboBoxEndString->currentText();if (strCbxText == D_ITEM_CUSTOMER)strSend = strText + strEndString;else if (strCbxText == D_ITEM_N)strSend = strText + "\n";else if (strCbxText == D_ITEM_R)strSend = strText + "\r";else if (strCbxText == D_ITEM_R_N)strSend = strText + "\r\n";m_pSocketClient->sendData(strSend);nStep = 0;}}break;default:nStep = 0;break;}}// 结束符选择if (true){QString strText = ui.comboBoxEndString->currentText();if (strText == D_ITEM_CUSTOMER)ui.lineEditEndString->setEnabled(true);elseui.lineEditEndString->setEnabled(false);}
}
三、程序链接
https://download.csdn.net/download/u013083044/86784748
QT-通用TCP客户端使用工具相关推荐
- qt客户端连接服务器不响应,qt判断tcp客户端是否连接服务器
qt判断tcp客户端是否连接服务器 内容精选 换一换 本章节指导您使用MongoDB客户端,通过弹性云服务器内网方式连接GaussDB(for Mongo)集群实例.操作系统使用场景:弹性云服务器的操 ...
- QT学习——Tcp客户端通信(本地回环)
1.Linux下Tcp通信 2.Qt下Tcp通信 1)Tcp框架--简图 下面的文本框是写入文本,上面的是显示发送后接收到的信息.这里发送的消息并不会立刻显示到界面上,而是要通过 readyRead( ...
- QT自制TCP客户端
一.TCP简介 目前还不是很懂,今后再说TCP,对于这个TCP客户端的编写,用到了两个参数: IP地址 端口号 二.项目规划 编写一个TCP客户端,我们需要先把逻辑功能梳理清除,我也是个初学者,就从最 ...
- QT制作TCP客户端
1,主界面 2,代码 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QTcpSo ...
- QT TCP局域网通讯工具 V1.0
TCP局域网通讯工具 V1.0 局域网 一件发送消息.发送文件软件. 1.实现了发送消息.多台客户端连入服务器均可看到客户端IP地址和内容. 2.实现了客户端给服务器发送文件功能. 本文作者原创,转载 ...
- Qt编写网络调试助手(TCP客户端+TCP服务端+UDP服务端)终极版开源
时隔半年,对网络调试助手工具进行所有代码重写,这次目录结果整齐的一逼,代码整齐的一逼,非常完善了,打死也不再改版了.这次真的打死也不再改版了. 旧版本1:http://www.qtcn.org/bbs ...
- 通用异步 Windows Socket TCP 客户端组件的设计与实现
编写 Windows Socket TCP 客户端其实并不困难,Windows 提供了6种 I/O 通信模型供大家选择.但本座看过很多客户端程序都把 Socket 通信和业务逻辑混在一起,剪不断理还乱 ...
- Qt中的TCP客户端编程
文章目录 1 Qt中的TCP客户端编程 1.1 TCP客户端编程介绍 1.2 QTcpSocket的同步编程 1.3 QTcpSocket的异步编程 1 Qt中的TCP客户端编程 1.1 TCP客户端 ...
- Qt 多线程TCP服务端一键关闭所有客户端
Qt 多线程TCP服务端一键关闭所有客户端 任务描述: 实现多线程TCP服务端一键关闭所有客户端的连接. 解决过程: 1.Qt的服务端提供了close的功能,但是只用来不响应新接入的客户端. 手册中是 ...
最新文章
- linux cpu 使用
- 自定义LocaleResolver实现页面中英文切换
- K8s 集群节点在线率达到 99.9% 以上,扩容效率提升 50%,我们做了这 3 个深度改造
- visual studio 2019创建项目报错:对com组件的调用返回了错误hresult_fail(未解决)
- MFC 获取命令行参数
- 解决win7能上网却右下角网络图标显示红色叉号的问题
- mysql 默认时间_mysql中如何设置默认时间为当前时间?
- 列表: ul/ol/dl - bootStrap4常用CSS笔记
- 关于苹果开发者账号(appleid)的问题修复
- JavaScript实现汉字转拼音功能
- 最全常见Web安全漏洞总结及推荐解决方案
- Android 加载超大图片+源码
- 大白菜超级U盘启动制作工具V2.0(网络增强版)
- 使用程序自动调用ANSYS并运行命令流文件
- 【VS Nuget包数据源无效】
- QT属性绑定binging
- html用手机什么软件能编写,目前编写一款简单的手机应用APP一般用什么编程语言?...
- ggplot2画histogram(坐标轴刻度值字体大小,坐标轴标题字体大小,柱形宽度,大标题字体大小、居中)...
- 转:明茨伯格:管理者工作的传说和现实
- 牛顿方法求平方根c语言,C语言之基本算法11—牛顿迭代法求平方根