Я использую QUdpSocket для отправки запросов на обнаружение IP-камер, совместимых с Onvif.
QUdpSocket* pSocket = new QUdpSocket(this);
QObject::connect(pSocket, SIGNAL(readyRead()), this, SLOT(dgAvailable()));
pSocket->bind(pSocket->localPort());
pSocket->writeDatagram(probeData, QHostAddress("239.255.255.250"), 3702);
У меня установлены VirtualBox и VMware, и поэтому у меня есть несколько виртуальных сетевых адаптеров.Когда эти виртуальные сетевые адаптеры включены, вызов bind () может занять более 30 секунд для возврата.Если я отключаю виртуальные адаптеры, вызов bind () возвращается немедленно.Я также пытался привязаться к определенному локальному IP-адресу, но это не имеет значения.
Это правильный способ отправки / получения запросов на обнаружение?Это проблема с Qt?
РЕДАКТИРОВАТЬ: Кажется, что только первый раз вызывается bind () после запуска приложения.