TCP/UDP与网络调试助手通信
1.UDP通信
//UDP{Parameterflag=1;this->udpSocket=new QUdpSocket(this);bool ok = udpSocket->bind(QHostAddress::Any, 8088); // 绑定到所有可用的网络接口上的12345端口if (!ok) {// 处理绑定失败的情况qDebug()<<"bind err";}connect(udpSocket, &QUdpSocket::readyRead, this, &MainWindow::readPendingDatagrams);this->timer=new QTimer(this);connect(timer, &QTimer::timeout, this, &MainWindow::sendDatagram);timer->start(1000);}
相对应的信号与槽函数连接,使用定时器进行不同时连接;
//UDP 发送连接对应地址和端口号void MainWindow::sendDatagram()
{Parameterflag=1;QByteArray datagram = "Hello, UDP!";QHostAddress receiver("192.168.52.1"); // 目标地址quint16 receiverPort = 9999; // 目标端口udpSocket->writeDatagram(datagram, receiver, receiverPort);qDebug() << "Sent datagram:" << datagram << "to" << receiver.toString() << ":" << receiverPort;
}
接收信息打印连接槽函数
void MainWindow::readPendingDatagrams()
{Parameterflag=1;// qDebug() <<"qerrttip";while (udpSocket->hasPendingDatagrams()) {QByteArray datagram;datagram.resize(int(udpSocket->pendingDatagramSize()));QHostAddress sender;quint16 senderPort;// data:接收到发送端的 功能码。// maxSize:功能码长度// sender(可选):发送方的IP地址。// senderPort(可选):发送方的端口号。udpSocket->readDatagram(datagram.data(), datagram.size(), &sender, &senderPort);qDebug() << "Received datagram:" << datagram << "from" << sender.toString() << ":" << senderPort;}
}
2. TCP服务器端连接
//TCP服务器// {// tcpServer=new QTcpServer(this);// connect(tcpServer, &QTcpServer::newConnection,