溫馨提示×

qt的udp數據怎么發送與接收

qt
小億
918
2024-05-28 18:43:12
欄目: 編程語言

在Qt中,可以使用QUdpSocket類來發送和接收UDP數據。

發送UDP數據:

QUdpSocket socket;
QHostAddress receiverAddress("127.0.0.1");
quint16 receiverPort = 12345;

QByteArray data = "Hello, World!";
socket.writeDatagram(data, receiverAddress, receiverPort);

接收UDP數據:

QUdpSocket socket;
quint16 port = 12345;

if(!socket.bind(port)) {
    qDebug() << "Failed to bind to port";
    return;
}

connect(&socket, &QUdpSocket::readyRead, [&](){
    while(socket.hasPendingDatagrams()) {
        QByteArray datagram;
        datagram.resize(socket.pendingDatagramSize());
        QHostAddress sender;
        quint16 senderPort;

        socket.readDatagram(datagram.data(), datagram.size(), &sender, &senderPort);

        qDebug() << "Received datagram from" << sender.toString() << ":" << senderPort;
        qDebug() << "Data:" << datagram.data();
    }
});

在上面的代碼中,我們首先創建一個QUdpSocket對象來發送和接收UDP數據。在發送數據時,我們使用writeDatagram方法,傳入要發送的數據、接收方地址和端口號。在接收數據時,我們首先綁定一個端口號,然后通過readyRead信號來處理接收到的數據。我們可以使用hasPendingDatagrams方法來檢查是否有待處理的數據報,再使用readDatagram方法讀取數據報的內容、發送方地址和端口號。

1
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女