Я использую Qt 4.8.2 (64 бит) на Linux Debian.
У меня проблема со статусом сокета. Я клиент, подключающийся к серверу, мой соответствующий фрагмент кода:
QTcpSocket *socket = new QTcpSocket(this);
socket->connectToHost(interface[cameras[listnum].interface].ip,interface[cameras[listnum].interface].port);
qDebug() << socket->waitForConnected(10000);
qDebug() << socket->isValid();
qDebug() << socket->state();
Я подключаюсь к серверу, который является локальным для меня, и я могу отключить к нему кабель Ethernet, чтобы проверить как подключенное, так и неподключенное состояние. Я могу сказать, подключаюсь ли я по времени ожидания, если кабель подключен к серверу, то ожидание для подключения занимает менее 0,5 секунды, а если кабель не подключен, время ожидания для подключения истекает через 10 секунд.
Моя проблема в том, что я получаю тот же статус подключен или нет. Вывод qDebug:
ложный
истинный
QAbstractSocket::UnconnectedState
И это остается таким, если я действительно подключен или нет. При подключении могу отправлять данные. Я также поместил последние два утверждения в командную кнопку и убедился, что статус возврата не меняется даже через несколько секунд или минут.
Любая помощь, указывающая мне в правильном направлении, будет принята с благодарностью.