修正一个线程分发BUG,线程在stard()后并不会立即启动,导致线程统计延迟无法正确限制线程数量。
This commit is contained in:
@@ -1,20 +0,0 @@
|
|||||||
QMAKE_CXX.QT_COMPILER_STDCXX = 199711L
|
|
||||||
QMAKE_CXX.QMAKE_MSC_VER = 1930
|
|
||||||
QMAKE_CXX.QMAKE_MSC_FULL_VER = 193030706
|
|
||||||
QMAKE_CXX.COMPILER_MACROS = \
|
|
||||||
QT_COMPILER_STDCXX \
|
|
||||||
QMAKE_MSC_VER \
|
|
||||||
QMAKE_MSC_FULL_VER
|
|
||||||
QMAKE_CXX.INCDIRS = \
|
|
||||||
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.30.30705\\ATLMFC\\include" \
|
|
||||||
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.30.30705\\include" \
|
|
||||||
"C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\ucrt" \
|
|
||||||
"C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.19041.0\\\\shared" \
|
|
||||||
"C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.19041.0\\\\um" \
|
|
||||||
"C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.19041.0\\\\winrt" \
|
|
||||||
"C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.19041.0\\\\cppwinrt"
|
|
||||||
QMAKE_CXX.LIBDIRS = \
|
|
||||||
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.30.30705\\ATLMFC\\lib\\x64" \
|
|
||||||
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.30.30705\\lib\\x64" \
|
|
||||||
"C:\\Program Files (x86)\\Windows Kits\\10\\lib\\10.0.19041.0\\ucrt\\x64" \
|
|
||||||
"C:\\Program Files (x86)\\Windows Kits\\10\\\\lib\\10.0.19041.0\\\\um\\x64"
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE QtCreatorProject>
|
<!DOCTYPE QtCreatorProject>
|
||||||
<!-- Written by QtCreator 6.0.1, 2022-01-05T20:42:08. -->
|
<!-- Written by QtCreator 6.0.1, 2022-01-05T20:45:49. -->
|
||||||
<qtcreator>
|
<qtcreator>
|
||||||
<data>
|
<data>
|
||||||
<variable>EnvironmentId</variable>
|
<variable>EnvironmentId</variable>
|
||||||
@@ -91,16 +91,16 @@
|
|||||||
<variable>ProjectExplorer.Project.Target.0</variable>
|
<variable>ProjectExplorer.Project.Target.0</variable>
|
||||||
<valuemap type="QVariantMap">
|
<valuemap type="QVariantMap">
|
||||||
<value type="QString" key="DeviceType">Desktop</value>
|
<value type="QString" key="DeviceType">Desktop</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 6.2.2 MSVC2019 64bit</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 6.2.2 MinGW 64-bit</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 6.2.2 MSVC2019 64bit</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 6.2.2 MinGW 64-bit</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt6.622.win64_msvc2019_64_kit</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt6.622.win64_mingw_kit</value>
|
||||||
<value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
|
<value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
|
||||||
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||||
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||||
<value type="int" key="EnableQmlDebugging">0</value>
|
<value type="int" key="EnableQmlDebugging">0</value>
|
||||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\wuwen\Desktop\tcp_ip_scan\build-ip_sacaner-Desktop_Qt_6_2_2_MSVC2019_64bit-Debug</value>
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\wuwen\Desktop\tcp_ip_scan\build-ip_sacaner-Desktop_Qt_6_2_2_MinGW_64_bit-Debug</value>
|
||||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/wuwen/Desktop/tcp_ip_scan/build-ip_sacaner-Desktop_Qt_6_2_2_MSVC2019_64bit-Debug</value>
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/wuwen/Desktop/tcp_ip_scan/build-ip_sacaner-Desktop_Qt_6_2_2_MinGW_64_bit-Debug</value>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
@@ -138,8 +138,8 @@
|
|||||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
||||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\wuwen\Desktop\tcp_ip_scan\build-ip_sacaner-Desktop_Qt_6_2_2_MSVC2019_64bit-Release</value>
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\wuwen\Desktop\tcp_ip_scan\build-ip_sacaner-Desktop_Qt_6_2_2_MinGW_64_bit-Release</value>
|
||||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/wuwen/Desktop/tcp_ip_scan/build-ip_sacaner-Desktop_Qt_6_2_2_MSVC2019_64bit-Release</value>
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/wuwen/Desktop/tcp_ip_scan/build-ip_sacaner-Desktop_Qt_6_2_2_MinGW_64_bit-Release</value>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
@@ -179,8 +179,8 @@
|
|||||||
</valuemap>
|
</valuemap>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
|
||||||
<value type="int" key="EnableQmlDebugging">0</value>
|
<value type="int" key="EnableQmlDebugging">0</value>
|
||||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\wuwen\Desktop\tcp_ip_scan\build-ip_sacaner-Desktop_Qt_6_2_2_MSVC2019_64bit-Profile</value>
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\wuwen\Desktop\tcp_ip_scan\build-ip_sacaner-Desktop_Qt_6_2_2_MinGW_64_bit-Profile</value>
|
||||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/wuwen/Desktop/tcp_ip_scan/build-ip_sacaner-Desktop_Qt_6_2_2_MSVC2019_64bit-Profile</value>
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/wuwen/Desktop/tcp_ip_scan/build-ip_sacaner-Desktop_Qt_6_2_2_MinGW_64_bit-Profile</value>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
|||||||
+15
-4
@@ -28,8 +28,8 @@ quint32 ipv4str_to_int(const QString& ipstr)
|
|||||||
|
|
||||||
void trytry::run()
|
void trytry::run()
|
||||||
{
|
{
|
||||||
qDebug() << ipstr<<":"<< ipint;
|
//qDebug() << ipstr<<":"<< ipint;
|
||||||
*now_thread_num+=1;
|
|
||||||
|
|
||||||
QTcpSocket m_socket;
|
QTcpSocket m_socket;
|
||||||
m_socket.connectToHost(ipstr, ipint, QTcpSocket::ReadWrite);
|
m_socket.connectToHost(ipstr, ipint, QTcpSocket::ReadWrite);
|
||||||
@@ -43,6 +43,10 @@ void trytry::run()
|
|||||||
}
|
}
|
||||||
m_socket.disconnectFromHost();
|
m_socket.disconnectFromHost();
|
||||||
m_socket.disconnect();
|
m_socket.disconnect();
|
||||||
|
|
||||||
|
//msleep(timeout);//test
|
||||||
|
|
||||||
|
|
||||||
*now_thread_num-=1;
|
*now_thread_num-=1;
|
||||||
|
|
||||||
*nt_bar+=1;
|
*nt_bar+=1;
|
||||||
@@ -64,14 +68,20 @@ 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);
|
//qDebug()<<"thread "<<now_thread_num<<":"<<set_thread_num;
|
||||||
|
while (now_thread_num> set_thread_num)
|
||||||
|
{
|
||||||
|
//qDebug()<<"while "<<now_thread_num<<":"<<set_thread_num;
|
||||||
|
}
|
||||||
|
|
||||||
try_telnet=new trytry;
|
try_telnet=new trytry;
|
||||||
try_telnet->ipstr = ipstr;
|
try_telnet->ipstr = ipstr;
|
||||||
try_telnet->ipint = ipint;
|
try_telnet->ipint = ipint;
|
||||||
try_telnet->timeout = timeout;
|
try_telnet->timeout = timeout;
|
||||||
try_telnet->output_list = output_list;
|
try_telnet->output_list = output_list;
|
||||||
|
|
||||||
|
|
||||||
try_telnet->now_thread_num = &now_thread_num;
|
try_telnet->now_thread_num = &now_thread_num;
|
||||||
|
|
||||||
try_telnet->t_bar=&t_bar;
|
try_telnet->t_bar=&t_bar;
|
||||||
@@ -84,6 +94,7 @@ void dispatch::tray(const QString& ipstr, quint32 ipint)
|
|||||||
//try_telnet->moveToThread(main_thread);
|
//try_telnet->moveToThread(main_thread);
|
||||||
try_telnet->start();
|
try_telnet->start();
|
||||||
|
|
||||||
|
now_thread_num+=1;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ public:
|
|||||||
quint16 timeout;
|
quint16 timeout;
|
||||||
QString ipstr;
|
QString ipstr;
|
||||||
quint32 ipint;
|
quint32 ipint;
|
||||||
quint16 *now_thread_num;
|
int *now_thread_num;
|
||||||
QTextEdit* output_list;
|
QTextEdit* output_list;
|
||||||
|
|
||||||
quint64 *t_bar;
|
quint64 *t_bar;
|
||||||
@@ -38,8 +38,8 @@ public:
|
|||||||
|
|
||||||
dispatch();
|
dispatch();
|
||||||
|
|
||||||
quint16 set_thread_num;
|
int set_thread_num;
|
||||||
quint16 now_thread_num;
|
int now_thread_num;
|
||||||
quint16 timeout;
|
quint16 timeout;
|
||||||
quint64 t_bar=0;
|
quint64 t_bar=0;
|
||||||
quint64 nt_bar=0;
|
quint64 nt_bar=0;
|
||||||
|
|||||||
@@ -57,6 +57,12 @@ Widget::Widget(QWidget *parent)
|
|||||||
dispatch_thread->start();
|
dispatch_thread->start();
|
||||||
connect(dispatch_thread, &dispatch::dispatch_finish, [=]()
|
connect(dispatch_thread, &dispatch::dispatch_finish, [=]()
|
||||||
{
|
{
|
||||||
|
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;
|
||||||
qDebug() << "dispatch_finish";
|
qDebug() << "dispatch_finish";
|
||||||
disconnect(dispatch_thread);
|
disconnect(dispatch_thread);
|
||||||
//delete dispatch_thread;
|
//delete dispatch_thread;
|
||||||
@@ -64,12 +70,7 @@ Widget::Widget(QWidget *parent)
|
|||||||
}else
|
}else
|
||||||
{
|
{
|
||||||
//dispatch_thread->exit();
|
//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'
|
||||||
|
|||||||
Reference in New Issue
Block a user