跳转到正文
型号与参数核对
联系业务人员

如何使用Qudpsocket

UDP是无连接且不可靠的传输协议,可以在可靠传输不重要时使用。 QUdpSocket是QAbstractSocket的子类,它们都继承QIODevice。因此,您可以使用QUdpSocket发送和接收数据。它和QTcpSocket之间的最大区别是,在发送数据之前无需建立连接。下面的简单示例演示如何使用QUdpSocket实现客户端和服务器之间的通信。服务器代码:[cpp]查看普通副本1.类UDPServer:public QObject 2. {3. Q_OBJECT 4. slot:slots5。UDPServer(QObject * parent = NULL); 7.〜UDPServer()6. 8. void readPendingDatagrams(); 9. private:10. QUdpSocket * udpSocket; 11. 12.}; [cpp]视图plaincopy [cpp]视图plaincopy 1. UDPServer :: UDPServer(QObject * parent)/ * = NULL)2. {3. udpSocket = new QUdpSocket(this); 4.“ udpSocket-” bind(QHostAddress :: LocalHost,7755); 5. cout“”服务器正在运行。 。 。 。 & rdquo; "" endl; 6. connect(udpSocket,SIGNAL(readyRead()),this,SLOT(readPendingDatagrams())); 7.} 8. 9. UDPServer ::〜UDPServer()10. {11.} 13. 14. void UDPServer :: readPendingDatagrams()15. {16. QHostAddress sender; 17. quint16 senderPort; 18. while(udpSocket-Byte-“具有PendingDatagram”数据21.“ data。udpSocket-” pendingDatagramSize()); 22. udpSocket-“ readDatagram(datagram.data(),datagram.size(),& sender,& senderPort)); 23.字符串strMes(datagram); 24. std :: cout““ StrMes”” endl; 25.} 26. QString text =“ hello”。 。 。 & rdquo ;; 27. QByteArray数据报= text.toLocal8Bit(); 28.“ udpSocket-” writeDatagram(datagram.data(),datagram.size(),sender,senderPort); 29.}描述:1.在计算机上进行了测试,因此服务器地址均为localHost。即,[cpp]视图无格式复制“ udpSocket-” bind(QHostAddress :: LocalHost,7755); 2.将信息发送到客户端[cpp]视图。复制副本“ udpSocket-” writeDatagram(datagram.data(),datagram.size(),Sender,senderPort);