QUdpSocket是Qt对UDP的封装。UDP是无连接的,发送数据前不需要建立连接,因此可靠性就没那么好了。不过UDP带来的好处就是效率高、占用资源少,还能实现一对多,多对多等交互方式。
QUdpSocket通信的步骤如下:
1.创建一个QUdpSocket对象,该对象绑定一个地址和端口(bind)。
2.创建另一个QUdpSocket对象,使用writeDatagram(需要填入目标host和端口)发送数据。
3.QUdpSocket收到数据时触发读取数据的信号,使用readDatagram读取数据。
举个例子:
1.首先用Qt界面设计师拖一界面如下:
上面一个QTextEdit作为显示服务端接收到的数据,下面一个QTextEdit用于输入要发送的数据,还有一个发送按钮。
2.写一个服务端类继承于QObject,该类只有一个QUdpSocket指针类型的成员变量m_pSocket。在类的构造函数中创建m_pSocket对象,然后执行bind操作,最后连接m_pSocket对象的readyRead信号。
UdpServer::UdpServer(QObject *parent) : QObject(parent){m_pSocket = new QUdpSocket; m_pSocket->bind(QHostAddress::Any,3333); //绑定3333端口 connect(m_pSocket,SIGNAL(readyRe