Qtcpserver восстановить более одного адреса
-
27-09-2019 - |
Вопрос
я использую Qtcpserver. из QT-Framework с C ++.
Я начал это с
ret = tcpServer->listen(QHostAddress::Any, 9871)
С участием
QHostAddress serverAddress () const
Я извлекаю адрес от него. Который составляет 0,0,0,0. На мой взгляд, он должен слушать более одного адреса (например, 127.0.0.1 и адрес LAN).
Есть ли способ получить более одного адреса из этого класса?
Решение
Я не уверен, что именно ваш вопрос точно, но ...
Обычно А. 0.0.0.0
означает, что сокет прослушивает все интерфейсы, которые находятся как и настроены с помощью действительный IPv4 адрес.
Если вы хотите получить все доступные IP-адреса в системе, вы должны перечислить сетевой интерфейс, затем запрашивать их соответствующий IPv4-адрес (возможно, с помощью ioctl
, указав SIOCGIFSWADDR
).
Другие советы
Я согласен с ответом Эреона выше.
Если вы хотите перечислить адрес вашего сетевого интерфейса, посмотрите на Qnetworkinterface..