1. 程式人生 > >Qt5 UDP網路通訊詳解

Qt5 UDP網路通訊詳解

        Qt封裝了很多通訊模組,常用的有UDP,TCP,HTTP通訊模組,現在我們詳解說下Qt的UDP通訊。

        Qt的UDP模組是相對其他軟體自帶的UDP封裝裡面比較好的一個,穩定可靠,方法整合度高,使用方便。並且常見於CS架構的系統裡面。

一般常見Qt UDP客戶端和服務端構成如下:

       1.客戶端,即Server端構成如下:

       本地DUP,繫結本地客戶埠和IP,傳送服務埠,傳送服務IP幾部分構成,一般實現程式碼如下:

udpSocket = new QUdpSocket(this);
udpSocket->bind(port, QUdpSocket::ShareAddress | QUdpSocket::ReuseAddressHint);
connect(udpSocket, SIGNAL(readyRead()), this, SLOT(SendDatagrams()));
udpSocket->writeDatagram(data,data.length(),QHostAddress::Broadcast, port);

      2.服務端,即Client端構成如下:

      接受端IP,接收埠號,接收函式:hasPendingDatagrams(),一般實現程式碼如下:

        datagram.resize(udp_socket_rd->pendingDatagramSize());
        QHostAddress reader;
        quint16 readerPort;
        reader =  QHostAddress("192.XXX.3.1");
        readerPort = 8888;
        udp_socket_rd->readDatagram(datagram.data(), datagram.size(),
                                    &reader, &readerPort);
    在我們的GUI程式裡面,按以上方法便可以實現UDP的基本通訊收發功能。