Qt5 UDP網路通訊詳解
阿新 • • 發佈:2019-01-28
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(),一般實現程式碼如下:
在我們的GUI程式裡面,按以上方法便可以實現UDP的基本通訊收發功能。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);