完善航点设置,历史遗留问题
This commit is contained in:
+27
-2
@@ -1,4 +1,4 @@
|
||||
#include "dlink.h"
|
||||
#include "dlink.h"
|
||||
#include <string.h>
|
||||
#include "QDateTime"
|
||||
|
||||
@@ -183,7 +183,7 @@ void DLink::connectSignal(QVariant m_state,
|
||||
}
|
||||
else if(m_Type.toString() == "UDP")
|
||||
{
|
||||
//qDebug() << m_Type << m_Param1 << m_Param2 << m_Param4;
|
||||
//qDebug() << "connet to socket" << m_Type << m_Param1 << m_Param2 << m_Param4;
|
||||
if(setupClient(QHostAddress(m_Param1.toString()),m_Param2.toString().toInt(),QHostAddress(m_Param3.toString()),m_Param4.toString().toInt()))
|
||||
{
|
||||
emit PortConnected(true,m_usrName,m_Type,m_Param1,m_Param2,m_Param3,m_Param4,m_Param5);
|
||||
@@ -204,6 +204,27 @@ void DLink::connectSignal(QVariant m_state,
|
||||
}
|
||||
else if(m_Type.toString() == "UDP")
|
||||
{
|
||||
//断开连接
|
||||
if(Clientsock)
|
||||
{
|
||||
for(int i = 0;i < clientSockets.count();i++)
|
||||
{
|
||||
qDebug() << clientSockets.at(i).addr;
|
||||
|
||||
if(clientSockets.at(i).addr == QHostAddress(m_Param3.toString()))
|
||||
{
|
||||
clientSockets.removeAt(i);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Clientsock->leaveMulticastGroup(QHostAddress(m_Param3.toString()));
|
||||
Clientsock->close();
|
||||
qWarning("leave multicast Group");
|
||||
delete Clientsock;
|
||||
Clientsock = nullptr;
|
||||
}
|
||||
|
||||
emit PortConnected(false,m_usrName,m_Type,m_Param1,m_Param2,m_Param3,m_Param4,m_Param5);
|
||||
}
|
||||
}
|
||||
@@ -221,6 +242,8 @@ bool DLink::setupClient(const QHostAddress &local_addr,int local_port,const QHos
|
||||
Clientsock = nullptr;
|
||||
}
|
||||
|
||||
qDebug() << "sock connect";
|
||||
|
||||
bool isSuccess = false;
|
||||
Clientsock = new QUdpSocket(this);
|
||||
if (Clientsock->bind(QHostAddress::AnyIPv4, local_port, QUdpSocket::ShareAddress|QUdpSocket::ReuseAddressHint))
|
||||
@@ -256,6 +279,7 @@ bool DLink::setupClient(const QHostAddress &local_addr,int local_port,const QHos
|
||||
isSuccess = false;
|
||||
qWarning() << "sock not open";
|
||||
delete Clientsock;
|
||||
Clientsock = nullptr;
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -265,6 +289,7 @@ bool DLink::setupClient(const QHostAddress &local_addr,int local_port,const QHos
|
||||
Clientsock->close();
|
||||
qWarning("sock is not binded.");
|
||||
delete Clientsock;
|
||||
Clientsock = nullptr;
|
||||
}
|
||||
|
||||
return isSuccess;
|
||||
|
||||
Reference in New Issue
Block a user