QUdpSocket :: bind () занимает много времени при наличии виртуальных сетевых адаптеров - PullRequest
0 голосов
/ 19 сентября 2018

Я использую 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 () после запуска приложения.

...