Top.Mail.Ru
Уведомления
Очистить все

[Решено] QT и QUdpSocket. Прием широковещательных пакетов (broadcast).

Treen
(@treen)
New Member

Привет, собственно, весь вопрос в названии темы) Можно ли при помощи класса QUdpSocket принимать широковещательные Broadcast UDP датаграммы?

Цитата
Topic starter Размещено : 21.02.2022 14:11
Тэги темы
Aveal
(@aveal)
Illustrious Member Admin
От: @treen

Привет, собственно, весь вопрос в названии темы) Можно ли при помощи класса QUdpSocket принимать широковещательные Broadcast UDP датаграммы?

Привет, да, в метод bind() просто передавать значение из enum QHostAddress::SpecialAddress:

  • QHostAddress::Null - The null address object. Equivalent to QHostAddress(). See also QHostAddress::isNull()
  • QHostAddress::LocalHost - The IPv4 localhost address. Equivalent to QHostAddress("127.0.0.1")
  • QHostAddress::LocalHostIPv6 - The IPv6 localhost address. Equivalent to QHostAddress("::1")
  • QHostAddress::Broadcast - The IPv4 broadcast address. Equivalent to QHostAddress("255.255.255.255")
  • QHostAddress::AnyIPv4 - The IPv4 any-address. Equivalent to QHostAddress("0.0.0.0"). A socket bound with this address will listen only on IPv4 interfaces
  • QHostAddress::AnyIPv6 - The IPv6 any-address. Equivalent to QHostAddress("::"). A socket bound with this address will listen only on IPv6 interfaces
  • QHostAddress::Any - The dual stack any-address. A socket bound with this address will listen on both IPv4 and IPv6 interfaces

 

 Например, для приема пакетов со всех ip-адресов и порта 10000:

udpSocket->bind(QHostAddress::Any, 10000, QUdpSocket::ReuseAddressHint);

 

ОтветитьЦитата
Размещено : 21.02.2022 17:37
Treen
(@treen)
New Member
От: @aveal

udpSocket->bind(QHostAddress::Any, 10000, QUdpSocket::ReuseAddressHint);

Ровно так сделала, работает, спасибо)

ОтветитьЦитата
Topic starter Размещено : 21.02.2022 18:24
Поделиться: