From a23651cad30b188726cbf7a54989f2a7c0795998 Mon Sep 17 00:00:00 2001 From: kevin Date: Fri, 7 Jan 2022 00:59:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=BB=93=E6=9E=84=EF=BC=8C?= =?UTF-8?q?=E5=B0=BD=E9=87=8F=E4=BD=BF=E7=94=A8=E6=A7=BD=E8=BF=9E=E6=8E=A5?= =?UTF-8?q?=EF=BC=8C=E4=BD=BF=E7=94=A8=E4=BF=A1=E5=8F=B7=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ip_sacaner/ip_sacaner.pro.user | 34 ++-- ip_sacaner/ip_sacaner.pro.user.dd2c0b1 | 265 +++++++++++++++++++++++++ ip_sacaner/scan_run.cpp | 112 ++++++----- ip_sacaner/scan_run.h | 10 +- ip_sacaner/widget.cpp | 14 +- ip_sacaner/widget.h | 4 +- ip_sacaner/widget.ui | 15 +- 7 files changed, 369 insertions(+), 85 deletions(-) create mode 100644 ip_sacaner/ip_sacaner.pro.user.dd2c0b1 diff --git a/ip_sacaner/ip_sacaner.pro.user b/ip_sacaner/ip_sacaner.pro.user index 625c961..119c835 100644 --- a/ip_sacaner/ip_sacaner.pro.user +++ b/ip_sacaner/ip_sacaner.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {dd2c0b1a-683d-4d88-826b-21331983c7b9} + {948b996b-b06e-44d3-a8b0-300fbbde1481} ProjectExplorer.Project.ActiveTarget @@ -70,14 +70,16 @@ 0 true - + + -fno-delayed-template-parsing + true Builtin.BuildSystem true true Builtin.DefaultTidyAndClazy - 4 + 8 @@ -89,16 +91,16 @@ ProjectExplorer.Project.Target.0 Desktop - macos - macos - {cfd5251c-844b-4c2f-9798-05a7388c9055} + Desktop Qt 6.2.2 MinGW 64-bit + Desktop Qt 6.2.2 MinGW 64-bit + qt.qt6.622.win64_mingw_kit 0 0 0 0 - /Users/wuwenfeng/Documents/tcp_ip_scan/build-ip_sacaner-macos-Debug - /Users/wuwenfeng/Documents/tcp_ip_scan/build-ip_sacaner-macos-Debug + C:\Users\wuwen\Desktop\tcp_ip_scan\build-ip_sacaner-Desktop_Qt_6_2_2_MinGW_64_bit-Debug + C:/Users/wuwen/Desktop/tcp_ip_scan/build-ip_sacaner-Desktop_Qt_6_2_2_MinGW_64_bit-Debug true @@ -136,8 +138,8 @@ 2 - /Users/wuwenfeng/Documents/tcp_ip_scan/build-ip_sacaner-macos-Release - /Users/wuwenfeng/Documents/tcp_ip_scan/build-ip_sacaner-macos-Release + C:\Users\wuwen\Desktop\tcp_ip_scan\build-ip_sacaner-Desktop_Qt_6_2_2_MinGW_64_bit-Release + C:/Users/wuwen/Desktop/tcp_ip_scan/build-ip_sacaner-Desktop_Qt_6_2_2_MinGW_64_bit-Release true @@ -177,8 +179,8 @@ 0 - /Users/wuwenfeng/Documents/tcp_ip_scan/build-ip_sacaner-macos-Profile - /Users/wuwenfeng/Documents/tcp_ip_scan/build-ip_sacaner-macos-Profile + C:\Users\wuwen\Desktop\tcp_ip_scan\build-ip_sacaner-Desktop_Qt_6_2_2_MinGW_64_bit-Profile + C:/Users/wuwen/Desktop/tcp_ip_scan/build-ip_sacaner-Desktop_Qt_6_2_2_MinGW_64_bit-Profile true @@ -238,14 +240,14 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:/Users/wuwenfeng/Documents/tcp_ip_scan/ip_sacaner/ip_sacaner.pro - /Users/wuwenfeng/Documents/tcp_ip_scan/ip_sacaner/ip_sacaner.pro + Qt4ProjectManager.Qt4RunConfiguration:C:/Users/wuwen/Desktop/tcp_ip_scan/ip_sacaner/ip_sacaner.pro + C:/Users/wuwen/Desktop/tcp_ip_scan/ip_sacaner/ip_sacaner.pro false true true false true - /Users/wuwenfeng/Documents/tcp_ip_scan/build-ip_sacaner-macos-Debug/ip_sacaner.app/Contents/MacOS + C:/Users/wuwen/Desktop/tcp_ip_scan/build-ip_sacaner-Desktop_Qt_6_2_2_MinGW_64_bit-Debug 1 diff --git a/ip_sacaner/ip_sacaner.pro.user.dd2c0b1 b/ip_sacaner/ip_sacaner.pro.user.dd2c0b1 new file mode 100644 index 0000000..625c961 --- /dev/null +++ b/ip_sacaner/ip_sacaner.pro.user.dd2c0b1 @@ -0,0 +1,265 @@ + + + + + + EnvironmentId + {dd2c0b1a-683d-4d88-826b-21331983c7b9} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + false + true + false + 0 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + + 0 + true + + true + Builtin.BuildSystem + + true + true + Builtin.DefaultTidyAndClazy + 4 + + + + true + + + + + ProjectExplorer.Project.Target.0 + + Desktop + macos + macos + {cfd5251c-844b-4c2f-9798-05a7388c9055} + 0 + 0 + 0 + + 0 + /Users/wuwenfeng/Documents/tcp_ip_scan/build-ip_sacaner-macos-Debug + /Users/wuwenfeng/Documents/tcp_ip_scan/build-ip_sacaner-macos-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Debug + Qt4ProjectManager.Qt4BuildConfiguration + 2 + + + /Users/wuwenfeng/Documents/tcp_ip_scan/build-ip_sacaner-macos-Release + /Users/wuwenfeng/Documents/tcp_ip_scan/build-ip_sacaner-macos-Release + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Release + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + + 0 + /Users/wuwenfeng/Documents/tcp_ip_scan/build-ip_sacaner-macos-Profile + /Users/wuwenfeng/Documents/tcp_ip_scan/build-ip_sacaner-macos-Profile + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Profile + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + 0 + + 3 + + + 0 + Deploy + Deploy + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + true + + 2 + + Qt4ProjectManager.Qt4RunConfiguration:/Users/wuwenfeng/Documents/tcp_ip_scan/ip_sacaner/ip_sacaner.pro + /Users/wuwenfeng/Documents/tcp_ip_scan/ip_sacaner/ip_sacaner.pro + false + true + true + false + true + /Users/wuwenfeng/Documents/tcp_ip_scan/build-ip_sacaner-macos-Debug/ip_sacaner.app/Contents/MacOS + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/ip_sacaner/scan_run.cpp b/ip_sacaner/scan_run.cpp index c5aaf53..1867649 100644 --- a/ip_sacaner/scan_run.cpp +++ b/ip_sacaner/scan_run.cpp @@ -29,32 +29,35 @@ quint32 ipv4str_to_int(const QString& ipstr) void trytry::run() { - - QTcpSocket m_socket; - m_socket.connectToHost(ipstr, ipint, QTcpSocket::ReadWrite); - if (m_socket.waitForConnected(timeout)) + if (ipint != 0 && ipstr != "") { - while(*outputbusy); - *outputbusy+=1; - QString temp = QString("%1:%2").arg(ipstr).arg(ipint); - //output_list->append(temp); - qDebug() << ipstr<<":"<< ipint; - //msleep(1); - *outputbusy-=1; + //qDebug()<append(temp); + //qDebug() << ipstr<<":"<< ipint; + //msleep(1); + *outputbusy-=1; + } + m_socket.disconnectFromHost(); + m_socket.disconnect(); + + + //while(*barbusy); + //*barbusy+=1; + + //str.asprintf("停止 %.3f",((0.0+*nt_bar)/(0.0+*t_bar))*100); + //bt->setText(QString("%1%").arg(((0.0+*nt_bar)/(0.0+*t_bar))*100)); + //qDebug()<<*nt_bar<<"/"<<*t_bar; + //*barbusy-=1; + + //*now_thread_num-=1; } - m_socket.disconnectFromHost(); - m_socket.disconnect(); - - - //while(*barbusy); - //*barbusy+=1; - *nt_bar+=1; - //str.asprintf("停止 %.3f",((0.0+*nt_bar)/(0.0+*t_bar))*100); - //bt->setText(QString("%1%").arg(((0.0+*nt_bar)/(0.0+*t_bar))*100)); - //qDebug()<<*nt_bar<<"/"<<*t_bar; - //*barbusy-=1; - - *now_thread_num-=1; } dispatch::dispatch() @@ -66,38 +69,52 @@ dispatch::dispatch() void dispatch::tray(const QString& ipstr, quint32 ipint) { - if (ipint != 0 && ipstr != "") + + + //qDebug()<<"thread "< set_thread_num) { + //qDebug()<<"while "< set_thread_num) - { - //qDebug()<<"while "<ipstr = ipstr; + try_telnet->ipint = ipint; + try_telnet->timeout = timeout; + try_telnet->output_list = output_list; - try_telnet=new trytry; - try_telnet->ipstr = ipstr; - try_telnet->ipint = ipint; - try_telnet->timeout = timeout; - try_telnet->output_list = output_list; - try_telnet->bt=bt; - try_telnet->now_thread_num = &now_thread_num; + try_telnet->now_thread_num = &now_thread_num; - try_telnet->t_bar=&t_bar; - try_telnet->nt_bar=&nt_bar; + try_telnet->t_bar=t_bar; + try_telnet->nt_bar=nt_bar; - try_telnet->outputbusy=&outputbusy; - try_telnet->barbusy=&barbusy; + try_telnet->outputbusy=&outputbusy; + try_telnet->barbusy=&barbusy; - //try_telnet->moveToThread(main_thread); - try_telnet->start(); + //try_telnet->moveToThread(main_thread); + connect(try_telnet,&QThread::started,[=]() + { now_thread_num+=1; - } + thread_start_lock=0; + + }); + connect(try_telnet,&QThread::finished,[=]() + { + now_thread_num-=1; + + }); + + while(thread_start_lock); + try_telnet->start(); + thread_start_lock=1; + + *nt_bar+=1; + emit dispatch_one(); } void dispatch::run() @@ -152,8 +169,8 @@ void dispatch::run() } } - t_bar=ips_num*ports_num; - nt_bar=0; + *t_bar=ips_num*ports_num; + *nt_bar=0; outputbusy=0; \ @@ -221,7 +238,8 @@ void dispatch::run() } - sleep(1); + //sleep(1); + while(now_thread_num); emit dispatch_finish(); } diff --git a/ip_sacaner/scan_run.h b/ip_sacaner/scan_run.h index 1eeceb5..5981899 100644 --- a/ip_sacaner/scan_run.h +++ b/ip_sacaner/scan_run.h @@ -23,7 +23,7 @@ public: quint32 ipint; int *now_thread_num; QTextEdit* output_list; - QLabel *bt; + quint64 *t_bar; quint64 *nt_bar; @@ -41,16 +41,17 @@ public: int set_thread_num; int now_thread_num; + int thread_start_lock=0; quint16 timeout; - quint64 t_bar=0; - quint64 nt_bar=0; + quint64 *t_bar; + quint64 *nt_bar; quint16 outputbusy=0; quint16 barbusy=0; //QThread* main_thread; QTextEdit* ip_list; QTextEdit* port_list; QTextEdit* output_list; - QLabel *bt; + trytry* try_telnet; void tray(const QString& ipstr, quint32 ipint); @@ -58,6 +59,7 @@ public: signals: void dispatch_finish(); + void dispatch_one(); }; diff --git a/ip_sacaner/widget.cpp b/ip_sacaner/widget.cpp index bdd8e50..7e25df5 100644 --- a/ip_sacaner/widget.cpp +++ b/ip_sacaner/widget.cpp @@ -48,15 +48,24 @@ Widget::Widget(QWidget *parent) dispatch_thread->ip_list = ui->IP_list; dispatch_thread->port_list = ui->port_list; dispatch_thread->output_list = ui->outputlist; - dispatch_thread->bt=ui->type_bar; + dispatch_thread->set_thread_num = ui->threads->value(); dispatch_thread->now_thread_num = 0; dispatch_thread->timeout = ui->timeout->value(); + dispatch_thread->nt_bar=&nt_bar; + dispatch_thread->t_bar=&t_bar; + //dispatch_thread->main_thread = main_thread; //dispatch_thread->moveToThread(main_thread); - dispatch_thread->start(); + connect(dispatch_thread, &dispatch::dispatch_one, [=]() + { + qDebug()<<100*nt_bar/t_bar; + //ui->t_bar->setValue(100*nt_bar/t_bar); + ui->stard_scan->setText(QString("停止 %1%").arg(100*nt_bar/t_bar)); + + }); connect(dispatch_thread, &dispatch::finished, [=]() { qDebug() << "dispatch_finish"; @@ -70,6 +79,7 @@ Widget::Widget(QWidget *parent) disconnect(dispatch_thread); //delete dispatch_thread; }); + dispatch_thread->start(); }else { qDebug() << "tray_exit"; diff --git a/ip_sacaner/widget.h b/ip_sacaner/widget.h index a47d89f..5cdbffb 100644 --- a/ip_sacaner/widget.h +++ b/ip_sacaner/widget.h @@ -29,8 +29,8 @@ public: qint16 scan_flag=0; - quint64 *t_bar; - quint64 *nt_bar; + quint64 t_bar=0; + quint64 nt_bar=0; private: diff --git a/ip_sacaner/widget.ui b/ip_sacaner/widget.ui index bb558f0..3c9a778 100644 --- a/ip_sacaner/widget.ui +++ b/ip_sacaner/widget.ui @@ -56,7 +56,7 @@ 420 220 - 71 + 171 41 @@ -204,19 +204,6 @@ domain.com 100 - - - - 500 - 240 - 53 - 16 - - - - 0% - -