Russian Qt Forum
Апрель 19, 2024, 01:20
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Работа с сетью
>
QTcpSocket. Хост найден, но далее возникает ошибка NetworkError. Решено.
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: QTcpSocket. Хост найден, но далее возникает ошибка NetworkError. Решено. (Прочитано 6112 раз)
mohax
Новичок
Offline
Сообщений: 10
QTcpSocket. Хост найден, но далее возникает ошибка NetworkError. Решено.
«
:
Октябрь 30, 2021, 09:11 »
Доброго дня!
Пытаюсь подсоединиться к прибору, на котором стоит адаптер MOXA, работающий в режиме TCP Server. Естественно, на компе есть подсеть, в которую входит этот прибор.
Задействовал сигналы
Код:
connect(socket, &QTcpSocket::readyRead, this, &ProtectWindow::socketReadySlot);
connect(socket, &QTcpSocket::disconnected, this, &ProtectWindow::socketDisconnectSlot);
connect(socket, &QTcpSocket::hostFound, this, &ProtectWindow::hostFoundSlot);
connect(socket, &QTcpSocket::connected, this, &ProtectWindow::connectedSlot);
connect(socket, &QTcpSocket::stateChanged, this, &ProtectWindow::stateChangedSlot);
Пытаюсь соединиться с хостом
Код:
socket->connectToHost(ipaddress, ipport);
В дебаге вывожу и получаю такие сообщения:
Цитировать
QAbstractSocket::HostLookupState
QAbstractSocket::ConnectingState
host found
QAbstractSocket::UnconnectedState
socket error: "Error: An error occurred with the network (e.g., the network cable was accidentally plugged out)."
Я новичок в работе с TCP. Не понимаю,почему компонент QTcpSocket не может соединиться с хостом?
С компа прибор с тем айпи адресом пингуется норм.
«
Последнее редактирование: Ноябрь 01, 2021, 07:27 от mohax
»
Записан
tux
Крякер
Offline
Сообщений: 399
Re: QTcpSocket. Хост найден, но далее возникает ошибка NetworkError
«
Ответ #1 :
Октябрь 30, 2021, 10:58 »
Пингуется - не означает, что остальные порты открыты. Я бы посмотрел сначала. Хотя бы с помощью nmap.
Записан
Digital Art
mohax
Новичок
Offline
Сообщений: 10
Re: QTcpSocket. Хост найден, но далее возникает ошибка NetworkError
«
Ответ #2 :
Октябрь 30, 2021, 11:59 »
Цитата: tux от Октябрь 30, 2021, 10:58
Пингуется - не означает, что остальные порты открыты. Я бы посмотрел сначала. Хотя бы с помощью nmap.
другой программой,написанной не на Qt, нормально происходит соединение с прибором
Записан
sergek
Гипер активный житель
Offline
Сообщений: 870
Мы должны приносить пользу людям.
Re: QTcpSocket. Хост найден, но далее возникает ошибка NetworkError
«
Ответ #3 :
Октябрь 30, 2021, 13:18 »
Номер порта проверьте
Записан
Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
tux
Крякер
Offline
Сообщений: 399
Re: QTcpSocket. Хост найден, но далее возникает ошибка NetworkError
«
Ответ #4 :
Октябрь 30, 2021, 22:49 »
Есть ещё такое понятие, как "привилигированный порт". Это порты от 0 до 1023. Формально, только рут должен их использовать. Как вариант, ваша "другая программа" щапускается от рута и прекрасно работает. Просто предположение.
Назвали бы, хотя бы номер порта.
Записан
Digital Art
mohax
Новичок
Offline
Сообщений: 10
Re: QTcpSocket. Хост найден, но далее возникает ошибка NetworkError
«
Ответ #5 :
Ноябрь 01, 2021, 07:27 »
Короче, ответ был неожиданно найден,и он вверг в меня удивление и ступор со словами "какого органа...".
Есть функция
Код:
socket->connectToHost(ipStr, ipport);
.
Если стринговая ipStr представлена в виде айпи адреса "192.168.127.012", то не происходит соединение, а если представить в виде "192.168.127.12", то все нормально, все работает, есть коннект. Далее узнал еще более интересные вещи, когда попытался применить класс QHostAddress, создавая его экземпляр QHostAddress("192.168.127.012"), и видя, как айпи адрес вдруг превращается в "192.168.127.10". Вот вопрос ко всем, почему цифры с начальным нулем функции,работающие с сетью,воспринимают как будто это записано в восьмеричной системе исчисления??? Что интересно,если я записываю адрес "192.168.127.090", то вообще полный крах происходит.
«
Последнее редактирование: Ноябрь 01, 2021, 07:30 от mohax
»
Записан
sergek
Гипер активный житель
Offline
Сообщений: 870
Мы должны приносить пользу людям.
Re: QTcpSocket. Хост найден, но далее возникает ошибка NetworkError. Решено.
«
Ответ #6 :
Ноябрь 01, 2021, 09:41 »
Если не ошибаюсь, октеты в ip-адресе могут быть записаны в любой системе исчисления, хоть в двоичной.
Записан
Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...