给输出加把锁,同1时刻只能有一条线程输出,这样程序就不会突然暴毙了

This commit is contained in:
2022-01-05 18:28:03 +08:00
parent ca5154d740
commit 7304444e66
15 changed files with 52 additions and 1045 deletions
-1
View File
@@ -1 +0,0 @@
This is a dummy file needed to create release/moc_predefs.h
-98
View File
@@ -1,98 +0,0 @@
/****************************************************************************
** Meta object code from reading C++ file 'widget.h'
**
** Created by: The Qt Meta Object Compiler version 68 (Qt 6.2.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../widget.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'widget.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 68
#error "This file was generated using the moc from 6.2.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_Widget_t {
const uint offsetsAndSize[2];
char stringdata0[7];
};
#define QT_MOC_LITERAL(ofs, len) \
uint(offsetof(qt_meta_stringdata_Widget_t, stringdata0) + ofs), len
static const qt_meta_stringdata_Widget_t qt_meta_stringdata_Widget = {
{
QT_MOC_LITERAL(0, 6) // "Widget"
},
"Widget"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_Widget[] = {
// content:
10, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void Widget::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
(void)_o;
(void)_id;
(void)_c;
(void)_a;
}
const QMetaObject Widget::staticMetaObject = { {
QMetaObject::SuperData::link<QWidget::staticMetaObject>(),
qt_meta_stringdata_Widget.offsetsAndSize,
qt_meta_data_Widget,
qt_static_metacall,
nullptr,
qt_incomplete_metaTypeArray<qt_meta_stringdata_Widget_t
, QtPrivate::TypeAndForceComplete<Widget, std::true_type>
>,
nullptr
} };
const QMetaObject *Widget::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *Widget::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_Widget.stringdata0))
return static_cast<void*>(this);
return QWidget::qt_metacast(_clname);
}
int Widget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QWidget::qt_metacall(_c, _id, _a);
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE
@@ -1,56 +0,0 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Qt_DEFINES_>UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;NDEBUG;QT_NO_DEBUG;QT_WIDGETS_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_CORE_LIB</Qt_DEFINES_>
<Qt_INCLUDEPATH_>C:\Qt\6.2.2\msvc2019_64\include;C:\Qt\6.2.2\msvc2019_64\include\QtWidgets;C:\Qt\6.2.2\msvc2019_64\include\QtGui;C:\Qt\6.2.2\msvc2019_64\include\QtNetwork;C:\Qt\6.2.2\msvc2019_64\include\QtCore;/include;C:\Qt\6.2.2\msvc2019_64\mkspecs\win32-msvc</Qt_INCLUDEPATH_>
<Qt_LIBS_>C:\Qt\6.2.2\msvc2019_64\lib\Qt6Widgets.lib;C:\Qt\6.2.2\msvc2019_64\lib\Qt6Gui.lib;C:\Qt\6.2.2\msvc2019_64\lib\Qt6Network.lib;C:\Qt\6.2.2\msvc2019_64\lib\Qt6Core.lib;C:\Qt\6.2.2\msvc2019_64\lib\Qt6EntryPoint.lib;shell32.lib</Qt_LIBS_>
<QMake_QT_SYSROOT_></QMake_QT_SYSROOT_>
<QMake_QT_INSTALL_PREFIX_>C:/Qt/6.2.2/msvc2019_64</QMake_QT_INSTALL_PREFIX_>
<QMake_QT_INSTALL_ARCHDATA_>C:/Qt/6.2.2/msvc2019_64</QMake_QT_INSTALL_ARCHDATA_>
<QMake_QT_INSTALL_DATA_>C:/Qt/6.2.2/msvc2019_64</QMake_QT_INSTALL_DATA_>
<QMake_QT_INSTALL_DOCS_>C:/Qt/Docs/Qt-6.2.2</QMake_QT_INSTALL_DOCS_>
<QMake_QT_INSTALL_HEADERS_>C:/Qt/6.2.2/msvc2019_64/include</QMake_QT_INSTALL_HEADERS_>
<QMake_QT_INSTALL_LIBS_>C:/Qt/6.2.2/msvc2019_64/lib</QMake_QT_INSTALL_LIBS_>
<QMake_QT_INSTALL_LIBEXECS_>C:/Qt/6.2.2/msvc2019_64/bin</QMake_QT_INSTALL_LIBEXECS_>
<QMake_QT_INSTALL_BINS_>C:/Qt/6.2.2/msvc2019_64/bin</QMake_QT_INSTALL_BINS_>
<QMake_QT_INSTALL_TESTS_>C:/Qt/6.2.2/msvc2019_64/tests</QMake_QT_INSTALL_TESTS_>
<QMake_QT_INSTALL_PLUGINS_>C:/Qt/6.2.2/msvc2019_64/plugins</QMake_QT_INSTALL_PLUGINS_>
<QMake_QT_INSTALL_QML_>C:/Qt/6.2.2/msvc2019_64/qml</QMake_QT_INSTALL_QML_>
<QMake_QT_INSTALL_TRANSLATIONS_>C:/Qt/6.2.2/msvc2019_64/translations</QMake_QT_INSTALL_TRANSLATIONS_>
<QMake_QT_INSTALL_CONFIGURATION_></QMake_QT_INSTALL_CONFIGURATION_>
<QMake_QT_INSTALL_EXAMPLES_>C:/Qt/Examples/Qt-6.2.2</QMake_QT_INSTALL_EXAMPLES_>
<QMake_QT_INSTALL_DEMOS_>C:/Qt/Examples/Qt-6.2.2</QMake_QT_INSTALL_DEMOS_>
<QMake_QT_HOST_PREFIX_>C:/Qt/6.2.2/msvc2019_64</QMake_QT_HOST_PREFIX_>
<QMake_QT_HOST_DATA_>C:/Qt/6.2.2/msvc2019_64</QMake_QT_HOST_DATA_>
<QMake_QT_HOST_BINS_>C:/Qt/6.2.2/msvc2019_64/bin</QMake_QT_HOST_BINS_>
<QMake_QT_HOST_LIBEXECS_>C:/Qt/6.2.2/msvc2019_64/bin</QMake_QT_HOST_LIBEXECS_>
<QMake_QT_HOST_LIBS_>C:/Qt/6.2.2/msvc2019_64/lib</QMake_QT_HOST_LIBS_>
<QMake_QMAKE_SPEC_>win32-msvc</QMake_QMAKE_SPEC_>
<QMake_QMAKE_XSPEC_>win32-msvc</QMake_QMAKE_XSPEC_>
<QMake_QMAKE_VERSION_>3.1</QMake_QMAKE_VERSION_>
<QMake_QT_VERSION_>6.2.2</QMake_QT_VERSION_>
<Qt_INCLUDEPATH_
>$(Qt_INCLUDEPATH_);Release;C:\Users\wuwen\Desktop\tcp_ip_scan\ip_sacaner</Qt_INCLUDEPATH_>
<QtBkup_QtInstall
>6.2.2_msvc2019_64</QtBkup_QtInstall>
<QtBkup_QtModules
>core;network;gui;widgets</QtBkup_QtModules>
<QtBkup_QtPathBinaries
>bin</QtBkup_QtPathBinaries>
<QtBkup_QtPathLibraryExecutables
>bin</QtBkup_QtPathLibraryExecutables>
<QtBkup_QtHeaderSearchPath
></QtBkup_QtHeaderSearchPath>
<QtBkup_QtLibrarySearchPath
></QtBkup_QtLibrarySearchPath>
<QtBkup_QtVars
>DEFINES=/-D([^\s=]+(=(\x22(\\\\|\\\x22|[^\x22])*\x22|\S+))?)/$1/;INCLUDEPATH=INCPATH/-(?:iquote|isystem|idirafter|I)\s*(\x22[^\x22]+\x22|[^\s]+)/$1/;LIBS=/(?:(?:\/LIBPATH:|-L)(?:\x22[^\x22]+\x22|[^\s]+))|(\x22[^\x22]+\x22|[^\s]+)/$1/;LIBPATH=LIBS/(?:\/LIBPATH:|-L)(\x22[^\x22]+\x22|[^\s]+)/$1/</QtBkup_QtVars>
<QtBkup_QMakeCodeLines
></QtBkup_QMakeCodeLines>
<QtBkup_QtBuildConfig
>release</QtBkup_QtBuildConfig>
<QtVersion>6.2.2</QtVersion>
<QtVersionMajor>6</QtVersionMajor>
<QtVersionMinor>2</QtVersionMinor>
<QtVersionPatch>2</QtVersionPatch>
</PropertyGroup>
</Project>
@@ -1 +0,0 @@
C:\Users\wuwen\AppData\Local\Temp\q4ot01m1.b1z.designtime.props
File diff suppressed because one or more lines are too long
-25
View File
@@ -1,25 +0,0 @@
QT_SYSROOT:
QT_INSTALL_PREFIX:C:/Qt/6.2.2/msvc2019_64
QT_INSTALL_ARCHDATA:C:/Qt/6.2.2/msvc2019_64
QT_INSTALL_DATA:C:/Qt/6.2.2/msvc2019_64
QT_INSTALL_DOCS:C:/Qt/Docs/Qt-6.2.2
QT_INSTALL_HEADERS:C:/Qt/6.2.2/msvc2019_64/include
QT_INSTALL_LIBS:C:/Qt/6.2.2/msvc2019_64/lib
QT_INSTALL_LIBEXECS:C:/Qt/6.2.2/msvc2019_64/bin
QT_INSTALL_BINS:C:/Qt/6.2.2/msvc2019_64/bin
QT_INSTALL_TESTS:C:/Qt/6.2.2/msvc2019_64/tests
QT_INSTALL_PLUGINS:C:/Qt/6.2.2/msvc2019_64/plugins
QT_INSTALL_QML:C:/Qt/6.2.2/msvc2019_64/qml
QT_INSTALL_TRANSLATIONS:C:/Qt/6.2.2/msvc2019_64/translations
QT_INSTALL_CONFIGURATION:
QT_INSTALL_EXAMPLES:C:/Qt/Examples/Qt-6.2.2
QT_INSTALL_DEMOS:C:/Qt/Examples/Qt-6.2.2
QT_HOST_PREFIX:C:/Qt/6.2.2/msvc2019_64
QT_HOST_DATA:C:/Qt/6.2.2/msvc2019_64
QT_HOST_BINS:C:/Qt/6.2.2/msvc2019_64/bin
QT_HOST_LIBEXECS:C:/Qt/6.2.2/msvc2019_64/bin
QT_HOST_LIBS:C:/Qt/6.2.2/msvc2019_64/lib
QMAKE_SPEC:win32-msvc
QMAKE_XSPEC:win32-msvc
QMAKE_VERSION:3.1
QT_VERSION:6.2.2
-2
View File
@@ -1,2 +0,0 @@
CONFIG += no_fixpath
QT += core network gui widgets
@@ -1,56 +0,0 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Qt_DEFINES_>UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;NDEBUG;QT_NO_DEBUG;QT_WIDGETS_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_CORE_LIB</Qt_DEFINES_>
<Qt_INCLUDEPATH_>C:\Qt\6.2.2\msvc2019_64\include;C:\Qt\6.2.2\msvc2019_64\include\QtWidgets;C:\Qt\6.2.2\msvc2019_64\include\QtGui;C:\Qt\6.2.2\msvc2019_64\include\QtNetwork;C:\Qt\6.2.2\msvc2019_64\include\QtCore;/include;C:\Qt\6.2.2\msvc2019_64\mkspecs\win32-msvc</Qt_INCLUDEPATH_>
<Qt_LIBS_>C:\Qt\6.2.2\msvc2019_64\lib\Qt6Widgets.lib;C:\Qt\6.2.2\msvc2019_64\lib\Qt6Gui.lib;C:\Qt\6.2.2\msvc2019_64\lib\Qt6Network.lib;C:\Qt\6.2.2\msvc2019_64\lib\Qt6Core.lib;C:\Qt\6.2.2\msvc2019_64\lib\Qt6EntryPoint.lib;shell32.lib</Qt_LIBS_>
<QMake_QT_SYSROOT_></QMake_QT_SYSROOT_>
<QMake_QT_INSTALL_PREFIX_>C:/Qt/6.2.2/msvc2019_64</QMake_QT_INSTALL_PREFIX_>
<QMake_QT_INSTALL_ARCHDATA_>C:/Qt/6.2.2/msvc2019_64</QMake_QT_INSTALL_ARCHDATA_>
<QMake_QT_INSTALL_DATA_>C:/Qt/6.2.2/msvc2019_64</QMake_QT_INSTALL_DATA_>
<QMake_QT_INSTALL_DOCS_>C:/Qt/Docs/Qt-6.2.2</QMake_QT_INSTALL_DOCS_>
<QMake_QT_INSTALL_HEADERS_>C:/Qt/6.2.2/msvc2019_64/include</QMake_QT_INSTALL_HEADERS_>
<QMake_QT_INSTALL_LIBS_>C:/Qt/6.2.2/msvc2019_64/lib</QMake_QT_INSTALL_LIBS_>
<QMake_QT_INSTALL_LIBEXECS_>C:/Qt/6.2.2/msvc2019_64/bin</QMake_QT_INSTALL_LIBEXECS_>
<QMake_QT_INSTALL_BINS_>C:/Qt/6.2.2/msvc2019_64/bin</QMake_QT_INSTALL_BINS_>
<QMake_QT_INSTALL_TESTS_>C:/Qt/6.2.2/msvc2019_64/tests</QMake_QT_INSTALL_TESTS_>
<QMake_QT_INSTALL_PLUGINS_>C:/Qt/6.2.2/msvc2019_64/plugins</QMake_QT_INSTALL_PLUGINS_>
<QMake_QT_INSTALL_QML_>C:/Qt/6.2.2/msvc2019_64/qml</QMake_QT_INSTALL_QML_>
<QMake_QT_INSTALL_TRANSLATIONS_>C:/Qt/6.2.2/msvc2019_64/translations</QMake_QT_INSTALL_TRANSLATIONS_>
<QMake_QT_INSTALL_CONFIGURATION_></QMake_QT_INSTALL_CONFIGURATION_>
<QMake_QT_INSTALL_EXAMPLES_>C:/Qt/Examples/Qt-6.2.2</QMake_QT_INSTALL_EXAMPLES_>
<QMake_QT_INSTALL_DEMOS_>C:/Qt/Examples/Qt-6.2.2</QMake_QT_INSTALL_DEMOS_>
<QMake_QT_HOST_PREFIX_>C:/Qt/6.2.2/msvc2019_64</QMake_QT_HOST_PREFIX_>
<QMake_QT_HOST_DATA_>C:/Qt/6.2.2/msvc2019_64</QMake_QT_HOST_DATA_>
<QMake_QT_HOST_BINS_>C:/Qt/6.2.2/msvc2019_64/bin</QMake_QT_HOST_BINS_>
<QMake_QT_HOST_LIBEXECS_>C:/Qt/6.2.2/msvc2019_64/bin</QMake_QT_HOST_LIBEXECS_>
<QMake_QT_HOST_LIBS_>C:/Qt/6.2.2/msvc2019_64/lib</QMake_QT_HOST_LIBS_>
<QMake_QMAKE_SPEC_>win32-msvc</QMake_QMAKE_SPEC_>
<QMake_QMAKE_XSPEC_>win32-msvc</QMake_QMAKE_XSPEC_>
<QMake_QMAKE_VERSION_>3.1</QMake_QMAKE_VERSION_>
<QMake_QT_VERSION_>6.2.2</QMake_QT_VERSION_>
<Qt_INCLUDEPATH_
>$(Qt_INCLUDEPATH_);Release;C:\Users\wuwen\Desktop\tcp_ip_scan\ip_sacaner</Qt_INCLUDEPATH_>
<QtBkup_QtInstall
>6.2.2_msvc2019_64</QtBkup_QtInstall>
<QtBkup_QtModules
>core;network;gui;widgets</QtBkup_QtModules>
<QtBkup_QtPathBinaries
>bin</QtBkup_QtPathBinaries>
<QtBkup_QtPathLibraryExecutables
>bin</QtBkup_QtPathLibraryExecutables>
<QtBkup_QtHeaderSearchPath
></QtBkup_QtHeaderSearchPath>
<QtBkup_QtLibrarySearchPath
></QtBkup_QtLibrarySearchPath>
<QtBkup_QtVars
>DEFINES=/-D([^\s=]+(=(\x22(\\\\|\\\x22|[^\x22])*\x22|\S+))?)/$1/;INCLUDEPATH=INCPATH/-(?:iquote|isystem|idirafter|I)\s*(\x22[^\x22]+\x22|[^\s]+)/$1/;LIBS=/(?:(?:\/LIBPATH:|-L)(?:\x22[^\x22]+\x22|[^\s]+))|(\x22[^\x22]+\x22|[^\s]+)/$1/;LIBPATH=LIBS/(?:\/LIBPATH:|-L)(\x22[^\x22]+\x22|[^\s]+)/$1/</QtBkup_QtVars>
<QtBkup_QMakeCodeLines
></QtBkup_QMakeCodeLines>
<QtBkup_QtBuildConfig
>release</QtBkup_QtBuildConfig>
<QtVersion>6.2.2</QtVersion>
<QtVersionMajor>6</QtVersionMajor>
<QtVersionMinor>2</QtVersionMinor>
<QtVersionPatch>2</QtVersionPatch>
</PropertyGroup>
</Project>
Binary file not shown.
+12 -4
View File
@@ -35,8 +35,11 @@ void trytry::run()
m_socket.connectToHost(ipstr, ipint, QTcpSocket::ReadWrite); m_socket.connectToHost(ipstr, ipint, QTcpSocket::ReadWrite);
if (m_socket.waitForConnected(timeout)) if (m_socket.waitForConnected(timeout))
{ {
while(*outputbusy);
*outputbusy=1;
QString temp = QString("%1:%2").arg(ipstr).arg(ipint); QString temp = QString("%1:%2").arg(ipstr).arg(ipint);
output_list->append(temp); output_list->append(temp);
*outputbusy=0;
} }
m_socket.disconnectFromHost(); m_socket.disconnectFromHost();
m_socket.disconnect(); m_socket.disconnect();
@@ -61,7 +64,7 @@ void dispatch::tray(const QString& ipstr, quint32 ipint)
if (ipint != 0 && ipstr != "") if (ipint != 0 && ipstr != "")
{ {
//qDebug()<<"thread "<<now_thread_num<<":"<<set_thread_num;
while (now_thread_num> set_thread_num); while (now_thread_num> set_thread_num);
try_telnet=new trytry; try_telnet=new trytry;
@@ -74,9 +77,11 @@ void dispatch::tray(const QString& ipstr, quint32 ipint)
try_telnet->t_bar=&t_bar; try_telnet->t_bar=&t_bar;
try_telnet->nt_bar=&nt_bar; try_telnet->nt_bar=&nt_bar;
try_telnet->outputbusy=&outputbusy;
try_telnet->the_bar=the_bar; try_telnet->the_bar=the_bar;
try_telnet->moveToThread(main_thread); //try_telnet->moveToThread(main_thread);
try_telnet->start(); try_telnet->start();
@@ -89,7 +94,7 @@ void dispatch::run()
//the_bar->setValue(20); //the_bar->setValue(20);
QTcpSocket* m_socket = new QTcpSocket; //QTcpSocket* m_socket = new QTcpSocket;
QStringList str_ip_list = ip_list->toPlainText().split("\n"); //先以行分割 QStringList str_ip_list = ip_list->toPlainText().split("\n"); //先以行分割
QStringList str_ips_list; //再以段分割 QStringList str_ips_list; //再以段分割
@@ -135,6 +140,9 @@ void dispatch::run()
t_bar=ips_num*ports_num; t_bar=ips_num*ports_num;
nt_bar=0; nt_bar=0;
outputbusy=0;
\
//qDebug()<<*t_bar; //qDebug()<<*t_bar;
//***************************** //*****************************
for (int i = 0; i < str_ip_list.size(); ++i) for (int i = 0; i < str_ip_list.size(); ++i)
+3 -2
View File
@@ -15,6 +15,7 @@ class trytry : public QThread
{ {
public: public:
quint16 *outputbusy;
quint16 timeout; quint16 timeout;
QString ipstr; QString ipstr;
@@ -42,8 +43,8 @@ public:
quint16 timeout; quint16 timeout;
quint64 t_bar=0; quint64 t_bar=0;
quint64 nt_bar=0; quint64 nt_bar=0;
quint16 outputbusy=0;
QThread* main_thread; //QThread* main_thread;
QTextEdit* ip_list; QTextEdit* ip_list;
QTextEdit* port_list; QTextEdit* port_list;
QTextEdit* output_list; QTextEdit* output_list;
-126
View File
@@ -1,126 +0,0 @@
/********************************************************************************
** Form generated from reading UI file 'widget.ui'
**
** Created by: Qt User Interface Compiler version 5.12.12
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_WIDGET_H
#define UI_WIDGET_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QLabel>
#include <QtWidgets/QProgressBar>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QSpinBox>
#include <QtWidgets/QTextEdit>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_Widget
{
public:
QTextEdit *port_list;
QLabel *label_3;
QPushButton *stard_scan;
QSpinBox *threads;
QLabel *label_4;
QLabel *label_5;
QPushButton *pushButton;
QTextEdit *IP_list;
QLabel *label;
QTextEdit *outputlist;
QLabel *label_2;
QSpinBox *timeout;
QProgressBar *type_bar;
void setupUi(QWidget *Widget)
{
if (Widget->objectName().isEmpty())
Widget->setObjectName(QString::fromUtf8("Widget"));
Widget->resize(600, 500);
Widget->setMinimumSize(QSize(600, 500));
Widget->setMaximumSize(QSize(600, 500));
port_list = new QTextEdit(Widget);
port_list->setObjectName(QString::fromUtf8("port_list"));
port_list->setGeometry(QRect(500, 100, 91, 111));
label_3 = new QLabel(Widget);
label_3->setObjectName(QString::fromUtf8("label_3"));
label_3->setGeometry(QRect(510, 30, 71, 61));
stard_scan = new QPushButton(Widget);
stard_scan->setObjectName(QString::fromUtf8("stard_scan"));
stard_scan->setGeometry(QRect(420, 220, 171, 41));
threads = new QSpinBox(Widget);
threads->setObjectName(QString::fromUtf8("threads"));
threads->setGeometry(QRect(350, 230, 61, 22));
threads->setMinimum(1);
threads->setMaximum(999);
threads->setValue(10);
label_4 = new QLabel(Widget);
label_4->setObjectName(QString::fromUtf8("label_4"));
label_4->setGeometry(QRect(320, 230, 31, 16));
label_5 = new QLabel(Widget);
label_5->setObjectName(QString::fromUtf8("label_5"));
label_5->setGeometry(QRect(10, 230, 53, 16));
pushButton = new QPushButton(Widget);
pushButton->setObjectName(QString::fromUtf8("pushButton"));
pushButton->setGeometry(QRect(70, 230, 91, 24));
IP_list = new QTextEdit(Widget);
IP_list->setObjectName(QString::fromUtf8("IP_list"));
IP_list->setGeometry(QRect(10, 100, 471, 111));
label = new QLabel(Widget);
label->setObjectName(QString::fromUtf8("label"));
label->setGeometry(QRect(10, 20, 141, 71));
outputlist = new QTextEdit(Widget);
outputlist->setObjectName(QString::fromUtf8("outputlist"));
outputlist->setGeometry(QRect(10, 300, 581, 191));
outputlist->setReadOnly(true);
label_2 = new QLabel(Widget);
label_2->setObjectName(QString::fromUtf8("label_2"));
label_2->setGeometry(QRect(200, 230, 41, 16));
timeout = new QSpinBox(Widget);
timeout->setObjectName(QString::fromUtf8("timeout"));
timeout->setGeometry(QRect(250, 230, 61, 22));
timeout->setMinimum(1);
timeout->setMaximum(1000);
timeout->setValue(100);
type_bar = new QProgressBar(Widget);
type_bar->setObjectName(QString::fromUtf8("type_bar"));
type_bar->setGeometry(QRect(10, 270, 581, 23));
type_bar->setValue(0);
retranslateUi(Widget);
QMetaObject::connectSlotsByName(Widget);
} // setupUi
void retranslateUi(QWidget *Widget)
{
Widget->setWindowTitle(QApplication::translate("Widget", "Widget", nullptr));
label_3->setText(QApplication::translate("Widget", "\347\253\257\345\217\243\350\214\203\345\233\264\n"
"80\n"
"443\n"
"3000-65535", nullptr));
stard_scan->setText(QApplication::translate("Widget", "\345\274\200\345\247\213\346\211\253\346\217\217", nullptr));
label_4->setText(QApplication::translate("Widget", "\347\272\277\347\250\213", nullptr));
label_5->setText(QApplication::translate("Widget", "\346\211\253\346\217\217\347\273\223\346\236\234", nullptr));
pushButton->setText(QApplication::translate("Widget", "\344\277\235\345\255\230\346\211\253\346\217\217\347\273\223\346\236\234", nullptr));
label->setText(QApplication::translate("Widget", "IP\350\214\203\345\233\264\n"
"127.0.0.1\n"
"0.0.0.0-255.255.255.255\n"
"domain.com", nullptr));
label_2->setText(QApplication::translate("Widget", "\350\266\205\346\227\266ms", nullptr));
} // retranslateUi
};
namespace Ui {
class Widget: public Ui_Widget {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_WIDGET_H
+33 -5
View File
@@ -25,11 +25,23 @@ Widget::Widget(QWidget *parent)
main_thread = new QThread(this); //main_thread = new QThread(this);
main_thread->start(); //main_thread->start();
connect(ui->stard_scan, &QPushButton::pressed, [=]() connect(ui->stard_scan, &QPushButton::pressed, [=]()
{ {
if(scan_flag==0)
{
scan_flag=1;
ui->IP_list->setReadOnly(true);
ui->port_list->setReadOnly(true);
ui->timeout->setReadOnly(true);
ui->threads->setReadOnly(true);
ui->stard_scan->setText("停止");
dispatch* dispatch_thread; dispatch* dispatch_thread;
dispatch_thread = new dispatch; dispatch_thread = new dispatch;
@@ -40,15 +52,31 @@ Widget::Widget(QWidget *parent)
dispatch_thread->now_thread_num = 0; dispatch_thread->now_thread_num = 0;
dispatch_thread->timeout = ui->timeout->value(); dispatch_thread->timeout = ui->timeout->value();
dispatch_thread->the_bar=ui->type_bar; dispatch_thread->the_bar=ui->type_bar;
dispatch_thread->main_thread = main_thread; //dispatch_thread->main_thread = main_thread;
dispatch_thread->moveToThread(main_thread); //dispatch_thread->moveToThread(main_thread);
dispatch_thread->start(); dispatch_thread->start();
connect(dispatch_thread, &dispatch::dispatch_finish, [=]() connect(dispatch_thread, &dispatch::dispatch_finish, [=]()
{ {
qDebug() << "dispatch_finish"; qDebug() << "dispatch_finish";
disconnect(dispatch_thread);
//delete dispatch_thread; //delete dispatch_thread;
}); });
}else
{
//dispatch_thread->exit();
ui->IP_list->setReadOnly(false);
ui->port_list->setReadOnly(false);
ui->timeout->setReadOnly(false);
ui->threads->setReadOnly(false);
ui->stard_scan->setText("开始扫描");
scan_flag=0;
}
});//'scan button pass' });//'scan button pass'
connect(ui->IP_list,&QTextEdit::textChanged,this, &Widget::auto_edit); connect(ui->IP_list,&QTextEdit::textChanged,this, &Widget::auto_edit);
@@ -56,7 +84,7 @@ Widget::Widget(QWidget *parent)
Widget::~Widget() Widget::~Widget()
{ {
main_thread->exit(); //main_thread->exit();
//delete main_thread; //delete main_thread;
delete ui; delete ui;
} }
+4 -1
View File
@@ -24,11 +24,14 @@ public:
void auto_edit(); void auto_edit();
QThread* main_thread; //QThread* main_thread;
qint16 scan_flag=0;
quint64 *t_bar; quint64 *t_bar;
quint64 *nt_bar; quint64 *nt_bar;
private: private:
Ui::Widget* ui; Ui::Widget* ui;
}; };