最近在编写一个网络通讯模块,需要用到QUdpSocket,但因Qt5.6以后版本放弃兼容XP系统,而不少客户因为早些购买的电脑配置低的问题,不能安装Win7以上的系统,需要的功能也并不是很多,主要用来调试设备或终端播放的功能,所以还是选择Qt5.6。
在使用Qt5.6版本时遇到一个问题:只能从客户端发送数据,不能从客户端接收服务端返回的数据。
发送数据:
writeDatagram(const char* data, qint64 size, const QHostAddress &address,quint16 port);
writeDatagram(const QByteArray &datagram, const QHostAddress &host, quint16 port);
服务端接数据:
readDatagram(char* data, qint64 maxSize, QHostAddress* address=Q_NULLPTR,quint16* port=Q_NULLPTR);
Qt5.8及以上版本:客户端接收数据
QNetworkDatagram receiveDatagram(quint64 maxSize = -1)