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アドレスおよびポート番号を出力します。