wordpress整站搬迁360免费建站李梦
2026/5/23 21:47:57 网站建设 项目流程
wordpress整站搬迁,360免费建站李梦,北京网站的建立的,泉州网Qt发个UDP消息#xff0c;实打实得就两步#xff1a; 1#xff09;创建QUdpSocket 2#xff09;发消息 就是这么滴简单#xff0c;相比纯用C/C来写#xff0c;简直简化了太多。 01 搞个UDP服务 void DialogUdpSocket::startUdpServer() {server_ new QUdpSocket(th…Qt发个UDP消息实打实得就两步1创建QUdpSocket2发消息就是这么滴简单相比纯用C/C来写简直简化了太多。01 搞个UDP服务void DialogUdpSocket::startUdpServer() { server_ new QUdpSocket(this); connect(server_, QUdpSocket::readyRead, this, [this]{ auto datagram server_-receiveDatagram(); ui-plainTextEdit_serv-appendPlainText( QString(recv ip:%1 port:%2 msg:%3) .arg(datagram.senderAddress().toString()) .arg(datagram.senderPort()) .arg(QString(datagram.data())) ); //回复 QNetworkDatagram d; d.setDestination(datagram.senderAddress(), datagram.senderPort()); d.setData(收到); server_-writeDatagram(d); }); connect(server_, QOverloadQAbstractSocket::SocketError::of(QUdpSocket::error), this, [](QAbstractSocket::SocketError err){ qDebug() err; }); bool ret server_-bind(QHostAddress::AnyIPv4, 8888); ui-plainTextEdit_serv-appendPlainText(QString(端口绑定结果%1).arg(ret?成功:失败)); ui-plainTextEdit_serv-appendPlainText(QString(本地端口%1).arg(server_-localPort())); }程序一运行就调用这个函数启动UDP服务看代码是写了这么多关键就两步server_ new QUdpSocket(this);创建UDPserver_-bind(QHostAddress::AnyIPv4, 8888);绑定到本地IP的8888端口上其它都是打辅助草丛中插眼的。这个UDP服务主要干一件事情:收到消息回OK1、连接readyRead信号有消息过来时这个信号就会触发。2、receiveDatagram() 读取消息的内容包括发送者的ip、端口信息。3、然后回复它“收到”就完了。02 无连接udp//客户端发送 void DialogUdpSocket::on_pushButton_send_clicked() { //创建 if(client_ nullptr) { client_ new QUdpSocket(this); connect(client_, QUdpSocket::readyRead, this, [this]{ auto datagram client_-receiveDatagram(); ui-plainTextEdit_client-appendPlainText( QString(serv reply: %1).arg(QString(datagram.data())) ); }); connect(client_, QUdpSocket::stateChanged, this, [](QAbstractSocket::SocketState socketState){ qDebug() socketState; }); } //发送一个消息 QString msg ui-lineEdit_send-text(); client_-writeDatagram(msg.toUtf8(), QHostAddress::LocalHost, 8888); ui-plainTextEdit_client-appendPlainText(QString(send msg: %1).arg(msg)); }1创建一个QUdpSocket2) writeDatagram 发送消息给上面的UDP服务看下咱们做好的示例代码本豆故意连接stateChanged信号看下它的打印就是说虽然我们没给客户端udp做端口绑定但是客户端在发消息会自动绑定一个端口。示例中是绑定到52040端口上了这是系统随机给udp分配的一个可用端口。作为一个发送客户端通常情况下还真就不需要显式绑定端口需要显式绑定的一般是服务端。总不能让服务端的端口随机绑定吧那客户端在这六万个端口里可不知道哪个是自家的服务了。03 有连接udp把前面的客户端代码改改改动一创建好socket后直接去连接服务端改动二用write发送消息看看还能不能发送消息眉毛冰有连接的UDP1显而易见的好处发消息时就不用再去指定目标IP和端口2还有个好处是它能略微提升些性能首先需要说明的是UDP的连接只是虚拟的连接或者叫逻辑上的连接与服务端并无真实连接。逻辑连接是让系统记录下通信双方节省系统对IP和端口的解析流程还能过滤掉无关数据包减少无效数据的处理。举个栗子TFTP是简单文件传输协议使用UDP进行传输。所以在TFTP协议下收发文件用有连接的方式稳定性和效率上会更高些。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询