Qt下的udp编程
项目需要一个基于udp的客户端, 看着Qt是有个QUdpSocket的类的, 但自带的例子和类的说明都没咋说明白:
怎么用一个QUdpSocket既当发送端, 又当接收端?
谷歌一顿后, 发现很多老内和老外都有这种疑问, 但网上更多的是询问, 没几个给出解决方案的, 不过最终还是找到一个靠谱的, 纪录在这儿:
// initialize socket
QUdpSocket* _socket = new QUdpSocket;
_socket->connectToHost(_ip, _port);
// send data
_socket->writeDatagram(request, QHostAddress(_ip), _port);
// recv data
if (_socket->hasPendingDatagrams())
{
QByteArray data;
data.resize(_socket->pendingDatagramSize());
_socket->readDatagram(data.data(), data.size());
}
看流程, 其实跟tcp的差不多是吧.