zoukankan      html  css  js  c++  java
  • QT UDP通信接受发送数据

    首先在.pro文件中加入 QT +=network;

    客户端

    1.建立socket

    sender = new QUdpSocket(this);

    2.绑定端口

    sender->bind(45453,QUdpSocket::ShareAddress);

    3.接受数据

     connect(sender,SIGNAL(readyRead()),this,SLOT(processPendingDatagram())); 

    void processPendingDatagram() //处理等待的数据报
    {
        while(sender->hasPendingDatagrams()) //拥有等待的数据报
        {
            QByteArray datagram; //拥于存放接收的数据报
            datagram.resize(sender->pendingDatagramSize());
            sender->readDatagram(datagram.data(),datagram.size());
            unsigned short size = datagram.size();
            unsigned char msg[10] = {0};
            memcpy(msg, datagram.data(), size);
            unsigned short arr = msg[0];
            arr = (arr<<8)+msg[1];
            qDebug()<<msg[0]<<msg[1]<<msg[2]<<msg[3];
        }
    }

    4.发送数据

    sender->writeDatagram((char*)msg,3, QHostAddress::Broadcast,45454);

    服务端

    1.建立Socket 

    receiver = new QUdpSocket(this);

    2.绑定端口

    receiver->bind(45454,QUdpSocket::ShareAddress);

    3.接受数据

        connect(receiver,SIGNAL(readyRead()),this,SLOT(processPendingDatagram()));

    void processPendingDatagram() //处理等待的数据报
    {
        while(receiver->hasPendingDatagrams()) //拥有等待的数据报
        {
            QByteArray datagram; //拥于存放接收的数据报
            datagram.resize(receiver->pendingDatagramSize());
            receiver->readDatagram(datagram.data(),datagram.size());
            unsigned short size = datagram.size();
            unsigned char msg[10] = {0};
            memcpy(msg, datagram.data(), size);
    
            qDebug()<<msg[0]<<msg[1]<<msg[2]<<msg[3];
        }
    }

    4.发送数据
       receiver->writeDatagram((char*)msg,3, QHostAddress::Broadcast,45453); 

  • 相关阅读:
    浏览器渲染机制
    isEmpty 和 isBlank 的用法区别
    Mybatis-plus
    Java8的JVM内存结构
    【面试题】关于线程交替的面试题
    java中的final的作用
    线程池
    六种实现单例模式的方法
    SQL优化常用方法
    HTML学习笔记
  • 原文地址:https://www.cnblogs.com/wxh-53919/p/9370684.html
Copyright © 2011-2022 走看看