18.3 UDP

Socket就是所谓的“套接字”,套接字就是一个IP地址加一个port端口号。

一般不建议发送大于512字节的数据,即便被发送成功,它们很可能是在到达最终目的地以前就在IP层被分割了。

QUdpSocket * sender;

void Sender::on_pushButton_clicked()

{

  QByteArray datagram = "hello world!";

  sender->writeDatagram(datagram.data(),datagram.size(),QHostAddress::Broadcast,45454);

}

 

接收端:

QUdpSocket * receiver;

receiver = new QUdpSocket(this);

receiver->bind(45454,QUdpsocket::ShareAddress);

connect(receiver,&QUdpSocket::readyRead,this,&Receiver::processPendingDatagram);

hasPendingDatagrams()来判断是否有等待读取的数据报。

pendingDatagramSize()来获取当前数据报的大小,然后使用readDatagram()函数接收不大于指定大小的数据报,并将其存储到QByteArray变量中。

 

Broadcast Sender Example  和 Broadcoat Receiver Example示例

上一篇:Datagram通讯


下一篇:Android / Java上的数据报传输层安全性(DTLS)