55 lines
1.5 KiB
C++
Raw Normal View History

2022-07-30 11:50:01 +08:00
#include "cidwudp.h"
#include <QJsonObject>
#include <QJsonArray>
#include <QJsonValue>
QString DeviceNO;
CIDWUdp::CIDWUdp(QObject *parent):
QObject(parent)
{
Init();
}
CIDWUdp::~CIDWUdp()
{
}
void CIDWUdp::Init()
{
m_pUdpSocket = new QUdpSocket(this);
m_pUdpSocket->bind(QHostAddress::Any,7302); //绑定端口号
bool udpflag = connect(m_pUdpSocket, SIGNAL(readyRead()), //连接信号槽函数
this, SLOT(ReadPendingDatagrams()));
qDebug()<<"CIDWUdp::Init()::::::::"<<udpflag;
}
void CIDWUdp::UserOnlineInfo(QByteArray datagram,QString strIP) //用户在线信息
{
//OnLineUser* user = (OnLineUser*)(datagram.data());
//qDebug()<<datagram.data();
QString strJson = datagram.data();
//qDebug()<<strJson;
emit RetSignal(strJson,strIP);
}
//读取数据函数
void CIDWUdp::ReadPendingDatagrams()
{
while (m_pUdpSocket->hasPendingDatagrams())
{
QByteArray datagram;
datagram.resize(m_pUdpSocket->pendingDatagramSize());
qint64 iRet = m_pUdpSocket->readDatagram(datagram.data(), datagram.size(),&m_targetaddr, &m_targetport);
qDebug()<<"CIDWUdp::ReadPendingDatagrams()++++++++" << datagram.data() << "size" << iRet;
qDebug()<<"CIDWUdp::ReadPendingDatagrams()========" << m_targetaddr.toString().mid(7);
if(AddFlag == false)
{
emit IpSignal(m_targetaddr.toString().mid(7));
}
UserOnlineInfo(datagram,m_targetaddr.toString().mid(7));
}
}