我必须通过UDP与某些设备进行通信。问题是QUdpSocket根本不工作,没有bind()的特殊情况。我使用connectToHost()方法for access to read()/write() functions。使用代码时QUdpSocket无法正常工作
UDP交换不工作:
m_udp.connectToHost(QHostAddress("192.168.100.15"), 4001);
m_udp.waitForConnected();
的我没有收到任何字节。消息Wireshark的:
下面的代码没有工作过:
m_udp.bind(QHostAddress("192.168.100.15"), 4001);
m_udp.connectToHost(QHostAddress("192.168.100.15"), 4001);
m_udp.waitForConnected();
仅此代码的工作:
m_udp.bind(4001);
m_udp.connectToHost(QHostAddress("192.168.100.15"), 4001);
m_udp.waitForConnected();
但代码只能在Qt的5.6。 2并且不适用于Qt 5.4.2。 这里是我尝试接收:
dev->waitForReadyRead(500);
QByteArray ba = dev->readAll();
为什么的行为是如此奇怪?如何理解这一点?