在QT上使用UDP进行通信
UDP的一条完整通信链路可以分为3步:Bind、Send、Receive。
-前期准备
1)在工程里加入:QT+=network,并qmake
2)包含头文件
-Bind
将本地IP地址和端口进行绑定
- Send
获得接收端的IP和端口,将要发送到数据放到数组中,用writeDatagram发送
- Receive
先用haspendindDatagram检测数据是否接收到,再用readDatagram进行读取
quint16 port=8080;
RecvTP_UdpSocket.bind(QHostAddress("127.0.0.1"),port);
SendTP_UdpSocket.bind(QHostAddress("192.168.0.1"),port);
SendTP_UdpSocket.writeDatagram(tpByteArray,QHostAddress("127.0.0.1"),port);
qDebug()<<"Send the data!";
for(;;)
{
if(RecvTP_UdpSocket.hasPendingDatagrams())
{
QByteArray dataarray;
dataarray.resize(RecvTP_UdpSocket.pendingDatagramSize());
qint64 size=RecvTP_UdpSocket.readDatagram(dataarray.data(),dataarray.size());
if(size<0)
{break;}
QString strData(dataarray.data());
qDebug()<<"get the information!";
ui->plainTextEdit_TP->setPlainText(strData);
}
}