В первом методе, когда вы связываете сокет bind(QHostAddress::Any, 7755)
, он будет прослушивать все интерфейсы в вашей системе; таким образом, он будет успешно связываться, зная, что хотя бы один интерфейс работает.
Во втором методе, когда вы устанавливаете IP-адрес с помощью QHostAddress address("the ip")
, вам необходимо убедиться, что интерфейс с этим IP-адресом установлен в вашей системе (используйте ipconfig
в Win / ifconfig
в Linux).
Теперь конструктор автоматически определит из переданной строки («IP-адрес»), является ли он IPv4 или IPv6.
Если вы не указываете тип, вы можете создать адрес как Any
и привязать к нему свой сокет:
QString string("192.168.1.1");
QHostAddress address(QHostAddress::Any);
address.setAddress(string);
udpSocket = new QUdpSocket();
bool result = udpSocket->bind(address , 7755);