Qt中Udp通信

        Qt中提供了QUdpSocket支持Udp通信。

        在Udp通信中,一个Udp对象绑定端口后即可收发数据。数据可以广播也可以单播放。比较简单。

帮助文档代码示例:

void Server::initSocket()
  {
      udpSocket = new QUdpSocket(this);
      udpSocket->bind(QHostAddress::LocalHost, 7755);
      connect(udpSocket, &QUdpSocket::readyRead,
              this, &Server::readPendingDatagrams);
  }

  void Server::readPendingDatagrams()
  {
      while (udpSocket->hasPendingDatagrams()) {
          QNetworkDatagram datagram = udpSocket->receiveDatagram();
          processTheDatagram(datagram);
      }
  }

        示例代码:

//初始化
int port;
QUdpSocket *udpSocket;
port = 5555;
udpSocket = new QUdpSocket(this);
connect(udpSocket,&QUdpSocket::readyRead,this,&UdpClient::dataReceived);
bool result = udpSocket->bind(port);
if(!result){
    QMessageBox::information(this,tr("error"),tr("udp socket create error"));
    return;
}
//接收数据
void UdpClient::dataReceived(){
    while(udpSocket->hasPendingDatagrams()){
        QByteArray datagram;
        datagram.resize(udpSocket->pendingDatagramSize());
        udpSocket->readDatagram(datagram.data(),datagram.size());
        QString msg = datagram.data();
        receiveTextEdit->insertPlainText(msg);
    }
}
//发送数据
if((length = udpSocket->writeDatagram(msg.toLatin1(),msg.length(),QHostAddress::Broadcast,port))!=msg.length()){
        return;
    }

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值