热点专题

您所在位置:首页 > 热点专题 > 正文

Qt实践录:TCP网络调试助手

文章作者:www.hohoy.cn发布时间:2020-03-16浏览次数:1188

由于该项目需要使用网络调试和测试,为了训练动手能力,Qt被用来编写一个串行调试助手。本文简要介绍了开发过程,并涉及到一些常用的模块代码。详细代码参考源仓库。

就代码重用而言,我认为Qt比MFC更好。例如,主窗口代码可以直接使用。当然,应该修改项目文件的名称和相应的依赖库,并且应该重新设计和实现接口控件。这也是作者喜欢直接使用由Qt创建者创建的默认文件和类的原因。此外,如果表单布局是用纯代码实现的,那么重用程度要比Qt Creator好。事实上,本文的项目是从上一篇文章《Qt实践录:串口调试助手》的源代码修改而来的。表单基本设置、图标、状态栏、十六进制显示、常规发送等代码都是直接使用的。因此,本文将不再重复上面提到的模块。

工具功能

功能

传输控制协议客户端和服务器。

十六进制接收和发送。

Timestamp Display

为了方便测试,该工具兼具服务器和客户端功能,可以实现自收集。它也可以单独使用。

已知错误

连接和断开的逻辑处理不完整。

对于服务器,理论上它应该需要根据不同的客户端发送数据(或者方向,或者全部)。当前版本未实现,仅采用最后一个客户端。

Qt相关知识

主窗口设计。

qtcp编程。

常用控件:按钮、复选框、文本编辑框、控件映射。标志应用。

按钮字体。

文本编辑框自定义显示的文本颜色。

运行结果如图1所示:

Figure 1

Development Process

Project Related

Qt。网络的相应依赖库是,相应的库需要添加到项目文件中,如下:

TCP编程

相关头文件和变量

其中m _ TCP服务器用于TCP服务器,m_tcpCliSocket用于保存连接的客户端。M _ tcpclisket用于客户端连接。

服务器

当一个新的客户端连接时,它会自动调用该函数,该函数保存客户端的套接字并关联数据接收信号和插槽:

当客户端发送数据时,它会自动触发该函数,该函数读取数据并显示:

客户端的IP和端口

服务器是通过接口输入的,连接服务器的函数如下:

注意,你不能使用或判断连接是否成功,你需要使用判断。示例如下:

客户端相关信号和插槽:

当远程服务器向客户端发送数据时,功能自动触发:

interface logic

interface design

interface由设计者设计,如图2所示。该界面的大多数功能与前面文章中的相同,因此不再涉及。

Figure 2

Text Color

本项目接收和显示三种类型的文本:时间戳提醒、服务器端数据和客户端数据。为了区分,不同的颜色用于显示。核心代码如下:

使用QPlainTextEdit的appendHtml函数,您可以用Html格式指定颜色。在这个项目中,提醒是灰色的,服务器接收的数据是蓝色的,客户端接收的数据是绿色的。

Other

作者基于此工具实现了一个自定义二进制协议,并运行了ESP8266,包括指示灯、继电器、工厂恢复、FOTA固件升级和运行状态下的功能测试验证。同时,集成了以前的串口功能,实现了一个工具的全功能测试。因为它与本文无关,所以不会扩展。仅显示截图:

Code Warehouse

本项目所有源代码均可自由独立使用,包括但不限于添加、删除、修改、商业使用和个人使用。由此带来的结果/后果与作者无关。受限于横向能力,该计划没有质量保证,并且该计划的作者没有义务提供服务。

仓库地址在这里。

五月婷婷开心中文字幕 四虎国产精-亚洲 区偷自-极品美女鲍