• 杂乱的UDPsocket


    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);
    }
    }

    udpSocket = new QUdpSocket(this);
    connect(udpSocket,SIGNAL(readyRead()),this,SLOT(dataReceived()));

    bool result=udpSocket->bind(port);
    if(!result)
    {
    QMessageBox::information(this,tr("error"),tr("udp socket create error!"));
    return;
    }
    port =5555;

    int port;
    QUdpSocket *udpSocket;
    udpSocket = new QUdpSocket(this);
    if((length=udpSocket->writeDatagram(msg.toLatin1(),msg.length(),QHostAddress::Broadcast,port))!=msg.length())

    直接发送和接收结构体,例如:
    struct A {...};
    struct A objectA;

    发送的时候:
    tcpSocket->write((char *)&objectA, sizeof(objectA));
    接收的时候:
    struct A objectB;
    tcpSocket->read((char *)&objectA, sizeof(objectA));


    udpSocket = new QUdpSocket(this);
    QByteArray datagram = "blog.const.net.cn";
    udpSocket->writeDatagram(datagram.data(), datagram.size(), QHostAddress::Broadcast, 45454);
    udpSocket->bind(QHostAddress("192.168.1.104"), 45454);

    UDP客户端广播
    QUdpSocket *udpsocket1 = new QUdpSocket(this);
    QByteArray datagram = "http://blog.const.net.cn";
    udpsocket1->writeDatagram(datagram.data(),datagram.size(), QHostAddress::Broadcast,ui->spinBox->text().toInt());


    UDP客户端发送到指定IP
    QUdpSocket *udpsocket1 = new QUdpSocket(this);
    QByteArray datagram = "http://blog.const.net.cn";
    udpsocket1->writeDatagram(datagram.data(),datagram.size(),
    QHostAddress("192.168.1.104"),ui->spinBox->text().toInt());

    收数据
    connect(udpsocket, SIGNAL(readyRead()), this, SLOT(readPendingDatagrams()));
    while (udpsocket->hasPendingDatagrams())
    {
    QByteArray datagram;
    datagram.resize(udpsocket->pendingDatagramSize());
    QHostAddress sender;
    quint16 senderPort;
    udpsocket->readDatagram(datagram.data(), datagram.size(), &sender, &senderPort);
    qDebug()<<datagram.data()<<datagram.size()<<senderPort<<sender.toString(); //processTheDatagram(datagram);
    }

  • 相关阅读:
    AVL树
    快速排序
    基数排序LSD_Radix_Sort
    归并排序
    JDBC连接池与工具类
    cookie的基础以及小案例
    javase基础4
    tomcat的request和response小案例
    javase基础3
    Servlet以及一个简单的登录案例
  • 原文地址:https://www.cnblogs.com/IamQtCreator/p/4609067.html
Copyright © 2020-2023  润新知