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客户端使用工具相关推荐

  1. qt客户端连接服务器不响应,qt判断tcp客户端是否连接服务器

    qt判断tcp客户端是否连接服务器 内容精选 换一换 本章节指导您使用MongoDB客户端,通过弹性云服务器内网方式连接GaussDB(for Mongo)集群实例.操作系统使用场景:弹性云服务器的操 ...

  2. QT学习——Tcp客户端通信(本地回环)

    1.Linux下Tcp通信 2.Qt下Tcp通信 1)Tcp框架--简图 下面的文本框是写入文本,上面的是显示发送后接收到的信息.这里发送的消息并不会立刻显示到界面上,而是要通过 readyRead( ...

  3. QT自制TCP客户端

    一.TCP简介 目前还不是很懂,今后再说TCP,对于这个TCP客户端的编写,用到了两个参数: IP地址 端口号 二.项目规划 编写一个TCP客户端,我们需要先把逻辑功能梳理清除,我也是个初学者,就从最 ...

  4. QT制作TCP客户端

    1,主界面 2,代码 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QTcpSo ...

  5. QT TCP局域网通讯工具 V1.0

    TCP局域网通讯工具 V1.0 局域网 一件发送消息.发送文件软件. 1.实现了发送消息.多台客户端连入服务器均可看到客户端IP地址和内容. 2.实现了客户端给服务器发送文件功能. 本文作者原创,转载 ...

  6. Qt编写网络调试助手(TCP客户端+TCP服务端+UDP服务端)终极版开源

    时隔半年,对网络调试助手工具进行所有代码重写,这次目录结果整齐的一逼,代码整齐的一逼,非常完善了,打死也不再改版了.这次真的打死也不再改版了. 旧版本1:http://www.qtcn.org/bbs ...

  7. 通用异步 Windows Socket TCP 客户端组件的设计与实现

    编写 Windows Socket TCP 客户端其实并不困难,Windows 提供了6种 I/O 通信模型供大家选择.但本座看过很多客户端程序都把 Socket 通信和业务逻辑混在一起,剪不断理还乱 ...

  8. Qt中的TCP客户端编程

    文章目录 1 Qt中的TCP客户端编程 1.1 TCP客户端编程介绍 1.2 QTcpSocket的同步编程 1.3 QTcpSocket的异步编程 1 Qt中的TCP客户端编程 1.1 TCP客户端 ...

  9. Qt 多线程TCP服务端一键关闭所有客户端

    Qt 多线程TCP服务端一键关闭所有客户端 任务描述: 实现多线程TCP服务端一键关闭所有客户端的连接. 解决过程: 1.Qt的服务端提供了close的功能,但是只用来不响应新接入的客户端. 手册中是 ...

最新文章

  1. linux cpu 使用
  2. 自定义LocaleResolver实现页面中英文切换
  3. K8s 集群节点在线率达到 99.9% 以上,扩容效率提升 50%,我们做了这 3 个深度改造
  4. visual studio 2019创建项目报错:对com组件的调用返回了错误hresult_fail(未解决)
  5. MFC 获取命令行参数
  6. 解决win7能上网却右下角网络图标显示红色叉号的问题
  7. mysql 默认时间_mysql中如何设置默认时间为当前时间?
  8. 列表: ul/ol/dl - bootStrap4常用CSS笔记
  9. 关于苹果开发者账号(appleid)的问题修复
  10. JavaScript实现汉字转拼音功能
  11. 最全常见Web安全漏洞总结及推荐解决方案
  12. Android 加载超大图片+源码
  13. 大白菜超级U盘启动制作工具V2.0(网络增强版)
  14. 使用程序自动调用ANSYS并运行命令流文件
  15. 【VS Nuget包数据源无效】
  16. QT属性绑定binging
  17. html用手机什么软件能编写,目前编写一款简单的手机应用APP一般用什么编程语言?...
  18. ggplot2画histogram(坐标轴刻度值字体大小,坐标轴标题字体大小,柱形宽度,大标题字体大小、居中)...
  19. 转:明茨伯格:管理者工作的传说和现实
  20. 牛顿方法求平方根c语言,C语言之基本算法11—牛顿迭代法求平方根

热门文章

  1. 智慧城市的由来与发展现状
  2. Android性能测试工具腾讯GT的使用
  3. C++性能测试工具gprof安装和应用
  4. [matlab工具箱] 曲线拟合Curve Fitting
  5. MySQL中district_MySQL中distinct语句的基本原理及其与group by的比较
  6. EXCEL中分类汇总功能
  7. 软件太臃肿了,如何解决?
  8. 什么是java常量_java常量是什么?
  9. Java 8 的异步编程利器 CompletableFuture 详解
  10. python可视化分析(三)-绘制带趋势线的散点图