Je dois communiquer avec un périphérique via UDP. Le problème est que QUdpSocket ne fonctionne pas du tout sans cas particulier de bind(). J'utilise la méthode connectToHost()for access to read()/write() functions.QUdpSocket ne fonctionne pas sans lier
échange UDP ne fonctionne pas du tout lorsque vous utilisez le code:
m_udp.connectToHost(QHostAddress("192.168.100.15"), 4001);
m_udp.waitForConnected();
Le je ne reçois pas d'octets. Message dans Wireshark:
Le code ci-dessous ne fonctionne pas trop:
m_udp.bind(QHostAddress("192.168.100.15"), 4001);
m_udp.connectToHost(QHostAddress("192.168.100.15"), 4001);
m_udp.waitForConnected();
Seul ce code fonctionne:
m_udp.bind(4001);
m_udp.connectToHost(QHostAddress("192.168.100.15"), 4001);
m_udp.waitForConnected();
Mais le code ne fonctionne que dans Qt 5.6. 2 et ne fonctionne pas dans Qt 5.4.2. Voici comment je tente de recevoir:
dev->waitForReadyRead(500);
QByteArray ba = dev->readAll();
Pourquoi le comportement est si étrange? Comment peut-on comprendre cela?