用QT实现 端口扫描工具1
安装在线QT,尽量是完整地自己进行安装,不然会少包
参考【保姆级图文教程】QT下载、安装、入门、配置VS Qt环境-CSDN博客



临时存储空间不够。
Windows系统通常会使用C盘来存储临时文件。
修改临时文件存储位置
-
打开系统属性:
- 右键点击“此电脑”或“我的电脑”,选择“属性”。
- 点击“高级系统设置”。
-
环境变量:
- 在“系统属性”窗口中,选择“高级”选项卡,然后点击“环境变量”按钮。
-
修改临时文件路径:
- 在“用户变量”部分,找到
TEMP和TMP变量。 - 选择其中一个,点击“编辑”。
- 在弹出的窗口中,将路径更改为您希望存储临时文件的新位置(例如,D:\Temp)。
- 对
TEMP和TMP变量都进行相同的修改。
- 在“用户变量”部分,找到
-
创建新文件夹:
- 确保您指定的新路径已经存在。如果没有,请手动创建该文件夹。
-
保存更改:
- 点击“确定”保存更改,关闭所有窗口。
-
重启计算机:
- 为了确保更改生效,建议重启计算机。

修改路径之后即可安装

打开QT









再点一次,总共三次

配置如下

添加网络功能

在mainwindow.h中引入库

由于扫描功能没有qt自带的对应函数,所以要自己添加,无法像给quit添加槽一样直接添加



内部添加代码
// 从用户界面的输入框中获取 IP 地址
QString strIP = ui->lineEdit_IP->text();
// 从用户界面的数字输入框中获取端口号
int intPort = ui->spinBox_Port->value();
// 将端口号转换为字符串格式
QString strPort = QString::number(intPort); // 检查 IP 地址是否为空
if(strIP.isEmpty()){ // 如果 IP 地址为空,弹出信息框提示用户输入 IP QMessageBox::information(this, tr("Error"), QStringLiteral("请输入 IP"), QMessageBox::Ok); return; // 结束函数执行
} // 检查端口号是否为 0
if(intPort == 0){ // 如果端口号为 0,弹出信息框提示用户输入端口 QMessageBox::information(this, tr("Error"), QStringLiteral("请输入 port"), QMessageBox::Ok); return; // 结束函数执行
} // 清空树形控件中的所有项
ui->treeWidget->clear(); // 创建一个新的树形控件项,使用输入的 IP 地址作为其文本
QTreeWidgetItem *items1 = new QTreeWidgetItem(ui->treeWidget, QStringList(strIP)); // 创建一个 QTcpSocket 对象,用于网络连接
QTcpSocket socket(0);
// 取消任何现有的连接
socket.abort();
// 尝试连接到指定的 IP 地址和端口
socket.connectToHost(strIP, intPort); // 等待连接,最多等待 1000 毫秒(1 秒)
if(socket.waitForConnected(1000))
{ // 如果连接成功,添加一个新的树形控件项,显示端口已打开 new QTreeWidgetItem(items1, QStringList(strPort + " opened"));
}
else
{ // 如果连接失败,添加一个新的树形控件项,显示端口已关闭 new QTreeWidgetItem(items1, QStringList(strPort + " closed"));
}
如果显示找不到部件,有可能是大小写这种微妙的差别。
构建并运行
localhost 通常用 IP 地址 127.0.0.1 表示。这是一个环回地址,指向本地计算机。使用这个地址可以在网络上与本机进行通信,而不需要通过网络接口。


用cmd查看

0.0.0.0:135 的监听范围更广,包含了 127.0.0.1:135 的监听范围。
这说明cmd的结果与我运行的结果是一致的。
//给 QTreeWidget 初始化表头QStringList head;head << "扫描结果";// 设置表头ui->treeWidget->setHeaderLabels(head);

我的遮挡我一直以为是保存更新的问题,其实只是框框拖小了,拖大一点就不遮挡了
生成发布版本

再按锤子
生成exe
打开release的文件夹

运行这个“应用程序”

显示找不到三个dll
解决:
相关文章:
用QT实现 端口扫描工具1
安装在线QT,尽量是完整地自己进行安装,不然会少包 参考【保姆级图文教程】QT下载、安装、入门、配置VS Qt环境-CSDN博客 临时存储空间不够。 Windows系统通常会使用C盘来存储临时文件。 修改临时文件存储位置 打开系统属性: 右键点击“此电…...
设计模式 结构型 适配器模式(Adapter Pattern)与 常见技术框架应用 解析
适配器模式(Adapter Pattern)是一种结构型设计模式,它允许将一个类的接口转换成客户端所期望的另一个接口,从而使原本因接口不兼容而无法一起工作的类能够协同工作。这种设计模式在软件开发中非常有用,尤其是在需要集成…...
vue 项目集成 electron 和 electron 打包及环境配置
vue electron 开发桌面端应用 安装 electron npm i electron -D记得加上-D,electron 需添加到devDependencies,如果添加到dependencies后面运行可能会报错 根目录创建electron文件夹,在electron文件夹创建main.js(或者backgrou…...
vscode如何离线安装插件
在没有网络的时候,如果要安装插件,就会麻烦一些,需要通过离线安装的方式进行。下面记录如何在vscode离线安装插件。 一、下载离线插件 在一台能联网的电脑中,下载好离线插件,拷贝到无法联网的电脑上。等待安装。 vscode插件商店地址:https://marketplace.visualstudio.co…...
计算机网络常见面试题及解答
以下是计算机网络中常见的面试题及解答,按主题分类: --- ## **一、基础概念** ### **1. OSI 七层模型和 TCP/IP 模型的区别是什么?** **答:** - **OSI 七层模型:** - 应用层、表示层、会话层、传输层、网络层、数…...
举例说明AI模型怎么聚类,最后神经网络怎么保存
举例说明怎么聚类,最后神经网络怎么保存 目录 举例说明怎么聚类,最后神经网络怎么保存K - Means聚类算法实现神经元特征聚类划分成不同专家的原理和过程 特征提取: 首先,需要从神经元中提取有代表性的特征。例如,对于一个多层感知机(MLP)中的神经元,其权重向量可以作为特…...
HarmonyOS NEXT应用开发实战(一):边学边玩,从零开发一款影视APP
引言 学习一项技能,最好也最快的办法就是动手实战。通过自己给自己找项目练习,不仅能够激发兴趣,还能从开发实战中不断总结经验。这种学习方法是最为高效的。今天,我们将通过开发一款名为“爱影家”的影视APP,来学习H…...
STM32G0B1 can Error_Handler 解决方法
问题现象 MCU上电,发送0x13帧数据固定进入 Error_Handler 硬件介绍 MCU :STM32G0B1 can:NSI1042 tx 接TX RX 接RX 折腾了一下午,无解,问题依旧; 对比测试 STM32G431 手头有块G431 官方评估版CAN 模块; 同样的…...
使用 `llama_index` 构建智能问答系统:多种文档切片方法的评估
使用 llama_index 构建智能问答系统:多种文档切片方法的评估 代码优化与解析1. **代码结构优化**2. **日志管理**3. **环境变量管理**4. **模型初始化**5. **提示模板更新**6. **问答函数优化**7. **索引构建与查询引擎**8. **节点解析器测试** 总结 在现代自然语言…...
【大模型】7 天 AI 大模型学习
7 天 AI 大模型学习 Day 2 今天是 7 天AI 大模型学习的第二天 😄,今天我将会学习 Transformer 、Encoder-based and Decoder-Based LLMs 等 。如果有感兴趣的,就和我一起开始吧 ~ 课程链接 :2025年快速吃透AI大模型&am…...
软件工程大复习之(四)——面向对象与UML
4.1 面向对象概述 面向对象(OO)是一种编程范式,它将数据和处理数据的方法封装在对象中。面向对象的主要概念包括: 对象:实例化的数据和方法的集合。类:对象的蓝图或模板。封装:隐藏对象的内部…...
【Linux】shell命令
目录 shell的基本命令 shell - 贝壳 外在保护工具 用户、shell、内核、硬件之间的关系 解析器的分类: shell命令格式 history -历史记录查询 修改环境变量的值: shell中的特殊字符 通配符 管道 | 输入输出重定向 命令置换符 shell的基本命…...
ValuesRAG:以检索增强情境学习强化文化对齐
随着大型语言模型(LLMs)的迅猛发展,其在各个领域展现出强大的能力。然而,训练数据中西方中心主义的倾向,使得 LLMs 在文化价值观一致性方面面临严峻挑战,这一问题在跨文化场景中尤为突出,可能导…...
【机器学习篇】交通革命:机器学习如何引领未来的道路创新
嘿,你知道吗?机器学习正在交通领域掀起一场革命啦!它将如何引领未来道路创新呢 本文有精彩的 C 代码演示、实用的图片解释,还有超多干货,保证让你大开眼界,点赞收藏关注, 开启一场奇妙的探索之…...
DeepSeek-V3 通俗详解:从诞生到优势,以及与 GPT-4o 的对比
1. DeepSeek 的前世今生 1.1 什么是 DeepSeek? DeepSeek 是一家专注于人工智能技术研发的公司,致力于打造高性能、低成本的 AI 模型。它的目标是让 AI 技术更加普惠,让更多人能够用上强大的 AI 工具。 1.2 DeepSeek-V3 的诞生 DeepSeek-V…...
把vue项目或者vue组件发布成npm包或者打包成lib库文件本地使用
将vue项目发布成npm库文件,第三方通过npm依赖安装使用;使用最近公司接了一个项目,这个项目需要集成到第三方页面,在第三方页面点击项目名称,页面变成我们的项目页面;要求以npm库文件提供给他们;…...
【STC库函数】Compare比较器的使用
如果我们需要比较两个点的电压,当A点高于B点的时候我们做一个操作,当B点高于A点的时候做另一个操作。 我们除了加一个运放或者比较器,还可以直接使用STC内部的一个比较器。 正极输入端可以是P37、P50、P51,或者从ADC的十六个通道…...
单片机-独立按键矩阵按键实验
1、按键介绍 按键管脚两端距离长的表示默认是导通状态,距离短的默认是断开状态, 如果按键按下,初始导通状态变为断开,初始断开状态变为导通 我们开发板是采用软件消抖,一般来说一个简单的按键消抖就是先读取按键的状…...
若要把普通表转成分区表,就需要先新建分区表,然后把普通表中的数据导入新建分区表。 具体怎么导入?
将普通表转换为分区表并导入数据是一个常见的数据库管理任务。以下是详细的步骤和示例,帮助你在 GaussDB 中完成这一过程: 1. 创建分区表 首先,你需要创建一个新的分区表,定义好分区键和分区策略。假设你有一个普通表 orders&am…...
XXX公司面试真题
一、一面问题 1.线程池的主要参数 核心线程数最大线程数空闲线程存活时间存活时间单位任务队列线程工厂拒绝策略允许核心线程超时 2. 线程的状态 新建状态就绪状态运行状态阻塞状态死亡状态 补充:线程阻塞的原因 线程调用sleep()方法进入睡眠状态 线程得到一个…...
用Python脚本解放双手:Epson V370扫描仪批量处理老照片实战
Python自动化扫描:Epson V370老照片数字化全攻略 每次翻看泛黄的老照片时,你是否想过把这些珍贵的记忆永久保存下来?但面对堆积如山的相册,手动一张张扫描又让人望而却步。作为一名经历过这个痛苦过程的开发者,我想分享…...
手把手教你用微软官方工具搞定Win11升级,附硬件检测和文件清理指南
微软官方工具全流程指南:从Win10到Win11的无缝升级与优化 每次Windows重大版本更新都像一次数字搬家——既期待新环境带来的体验提升,又担心数据丢失和兼容性问题。作为微软近年来最重要的系统升级,Windows 11带来了全新的界面设计、性能优化…...
【Linux应用】D-BUS实战:从IPC原理到服务激活全解析
1. D-BUS的本质:为什么Linux需要它? 第一次接触D-BUS时,我也被这个奇怪的名字搞懵了。直到在Ubuntu上调试蓝牙连接问题时,才发现这个默默工作的"通信员"有多重要。想象一下办公室里的电话总机——D-BUS就是Linux系统的…...
仅限首批参会者获取的AI性能分析工具链曝光:含3个未开源插件、2个IEEE基准测试集、1套自动归因DSL
第一章:2026奇点智能技术大会:AI代码性能分析 2026奇点智能技术大会(https://ml-summit.org) 在2026奇点智能技术大会上,AI代码性能分析成为核心议题之一。随着大模型驱动的智能编程助手(如Copilot X、CodeLLM-4.5)在…...
R3nzSkin技术解析:英雄联盟内存换肤工具的实战指南与架构揭秘
R3nzSkin技术解析:英雄联盟内存换肤工具的实战指南与架构揭秘 【免费下载链接】R3nzSkin Skin changer for League of Legends (LOL) 项目地址: https://gitcode.com/gh_mirrors/r3n/R3nzSkin R3nzSkin是一款基于内存动态修改技术的英雄联盟游戏换肤工具&…...
别再只会用BurpSuite抓包了!结合DVWA靶场,手把手教你玩转Intruder模块的密码爆破
从抓包到爆破:BurpSuite Intruder模块在DVWA靶场中的高阶实战 当你在渗透测试中遇到一个登录表单时,仅仅拦截请求可能远远不够。真正的威力在于如何将一次简单的抓包转化为系统性的自动化攻击。这就是BurpSuite Intruder模块的价值所在——它能把单调的手…...
从配置文件到配置类:Spring Boot Security 的权限控制演进
1. Spring Security 的配置文件时代 记得我第一次用 Spring Security 是在五年前的一个内部管理系统项目上。当时为了快速上线,直接在 application.yml 里写死了用户名密码,就像这样: spring:security:user:name: adminpassword: 123456roles…...
从LLM到AGI,决策逻辑为何越强越不可信?深度拆解因果推理链断裂点,工程师速查手册
第一章:AGI的决策透明度与可解释性 2026奇点智能技术大会(https://ml-summit.org) 当通用人工智能系统在医疗诊断、司法辅助或金融风控中作出关键判断时,人类不仅需要答案,更需要理解“为何如此”。决策透明度指系统能清晰呈现其推理路径与…...
【入门C++语法】break和continue
第9章 break和continue 一、 break语句 在使用for循环或while循环时,有时我们不需要执行完所有循环次数,而是希望在满足某个特定条件时立即终止循环,此时就需要用到break语句。 题目描述 找到目标值后停止循环。 在1~10的整数中查找数字"7",找到后就停止查找,…...
OpenClaw人人养虾:转录清洁
Transcript Hygiene(转录清洁)是对 OpenClaw 对话历史记录进行清理、脱敏和维护的实践。良好的转录清洁习惯有助于保障数据安全、节省存储空间并满足合规要求。为什么需要转录清洁对话转录中可能包含:风险类型示例个人身份信息(PI…...
