QTcpServer получает более одного адреса
Я использую QTcpServer из Qt-Framework с C++.
Я начал это с
ret = tcpServer->listen(QHostAddress::Any, 9871)
С
QHostAddress serverAddress () const
Я извлекаю адрес из него. Который 0.0.0.0. На мой взгляд, он должен прослушивать более одного адреса (например, 127.0.0.1 и адрес локальной сети).
Есть ли способ получить более одного адреса из этого класса?
2 ответа
Решение
Я не уверен, что именно ваш вопрос, но...
Обычно 0.0.0.0
означает, что сокет прослушивает все интерфейсы, которые работают и настроены с действительным адресом IPv4.
Если вы хотите получить все доступные IP-адреса в системе, вы должны перечислить сетевой интерфейс, а затем запросить их соответствующий IPv4-адрес (возможно, с помощью ioctl
, указав SIOCGIFSWADDR
).
Я согласен с ответом ereOn выше.
Если вы хотите перечислить адреса сетевого интерфейса, взгляните на QNetworkInterface.