Qt UDP通信 実装ガイド|データ送受信の基本

QtでUDPデータの送受信を実現するには、QUdpSocketクラスを使用する必要があります。以下は簡単なサンプルコードです。

// 创建一个QUdpSocket对象
QUdpSocket *udpSocket = new QUdpSocket(this);

// 绑定本地端口用于接收数据
udpSocket->bind(QHostAddress::Any, 1234);

// 发送数据
udpSocket->writeDatagram("Hello UDP", QHostAddress::LocalHost, 1234);

// 接收数据
connect(udpSocket, &QUdpSocket::readyRead, this, [=](){
    QByteArray datagram;
    datagram.resize(udpSocket->pendingDatagramSize());
    QHostAddress sender;
    quint16 senderPort;

    udpSocket->readDatagram(datagram.data(), datagram.size(), &sender, &senderPort);

    qDebug() << "Received datagram: " << datagram;
    qDebug() << "From: " << sender.toString() << ":" << senderPort;
});

コードの最初にQUdpSocketオブジェクトudpSocketが作成され、データを受信するためにローカルポート1234にバインドされました。その後、writeDatagramメソッドを使用してデータをローカルホストの1234ポートに送信します。次に、readyReadシグナルを使用してデータを受信し、pendingDatagramSize()でデータのサイズを取得し、readDatagramメソッドでデータを読み取り、受信したデータと送信元のIPアドレスおよびポート番号を出力します。

bannerAds