私はUDPを介していくつかのデバイスと通信する必要があります。問題は、の特別な場合なしでQUdpSocketがまったく動作しないということです。私はconnectToHost()メソッドfor access to read()/write() functionsを使用します。QUdpSocketがバインドなしで動作しない
コードを使用するときに交換が全く機能していないUDP:
m_udp.connectToHost(QHostAddress("192.168.100.15"), 4001);
m_udp.waitForConnected();
のIは、任意のバイトを受信しません。 Wiresharkの中のメッセージ:
以下のコードは、あまりにも動作しません:
m_udp.bind(4001);
m_udp.connectToHost(QHostAddress("192.168.100.15"), 4001);
m_udp.waitForConnected();
をしかし、コードが唯一のQt 5.6で動作します:
m_udp.bind(QHostAddress("192.168.100.15"), 4001);
m_udp.connectToHost(QHostAddress("192.168.100.15"), 4001);
m_udp.waitForConnected();
のみ、このコードは動作します。 Qt 5.4.2では動作しません。ここ は、私が受信しようとする方法である:
dev->waitForReadyRead(500);
QByteArray ba = dev->readAll();
振る舞いはとても奇妙であるのはなぜ?どのようにこれを理解することができますか?