Есть 2 приложения (клиент и сервер) созданные на основе примеров книги (Qt 5.10. Профессиональное программирование на C++ (Шлее М.)).
Если запускать оба приложения на 1 компьютере, то сервер устанавливает связь и может получать данные от клиента, но у меня не получается подключиться к серверу с другого компьютера. Оба устройства подключены к одному WI-FI.
IP адрес компьютера получаю следующим образом:
for (const QHostAddress &address: QNetworkInterface::allAddresses()) {
if (address.protocol() == QAbstractSocket::IPv4Protocol && address != QHostAddress(QHostAddress::LocalHost)) {
return address.toString();
}
}
Отключение брандмауэра на обоих устройствах ничего не дало.
C/C++
(Qt/C++) QTcpSocket подключение 2 устройств по внутренней сети.
Если у тебя возникают проблемы с подключением Qt-сервера из другого компьютера в одной локальной сети, вот несколько рекомендаций:
Убедись, что оба компьютера подключены к одной Wi-Fi сети или сети с одним маршрутизатором. Убедись, что все устройства находятся в одном подсетевом диапазоне.
Проверь, что серверное приложение прослушивает правильный IP-адрес и порт. Убедись, что передаешь правильный IP-адрес сервера клиентскому приложению для подключения.
Проверь, что используемый порт не заблокирован на компьютере сервера. Попробуй временно отключить брандмауэр на сервере или разреши входящие соединения на указанном порту.
Убедись, что настройки безопасности сети не блокируют входящие соединения на указанном порту. Обратись к администратору сети или провайдеру для проверки и настройки безопасности сети.
Если возможно, попробуй использовать статический IP-адрес для сервера, чтобы избежать возможных проблем с динамическими IP-адресами.
Проверь, что серверное приложение правильно настроено для прослушивания входящих соединений и подключений от удаленных устройств.
Если проблема продолжается, попробуй использовать другую библиотеку или фреймворк для сетевого взаимодействия в своем приложении. Иногда различные библиотеки могут иметь различные особенности и лучше подходить для определенных сценариев.
Если ничего из вышеперечисленного не помогло, пожалуйста, предоставь больше информации о том, как ты создаешь и настраиваешь серверное приложение, и я постараюсь помочь тебе более конкретно.
Убедись, что оба компьютера подключены к одной Wi-Fi сети или сети с одним маршрутизатором. Убедись, что все устройства находятся в одном подсетевом диапазоне.
Проверь, что серверное приложение прослушивает правильный IP-адрес и порт. Убедись, что передаешь правильный IP-адрес сервера клиентскому приложению для подключения.
Проверь, что используемый порт не заблокирован на компьютере сервера. Попробуй временно отключить брандмауэр на сервере или разреши входящие соединения на указанном порту.
Убедись, что настройки безопасности сети не блокируют входящие соединения на указанном порту. Обратись к администратору сети или провайдеру для проверки и настройки безопасности сети.
Если возможно, попробуй использовать статический IP-адрес для сервера, чтобы избежать возможных проблем с динамическими IP-адресами.
Проверь, что серверное приложение правильно настроено для прослушивания входящих соединений и подключений от удаленных устройств.
Если проблема продолжается, попробуй использовать другую библиотеку или фреймворк для сетевого взаимодействия в своем приложении. Иногда различные библиотеки могут иметь различные особенности и лучше подходить для определенных сценариев.
Если ничего из вышеперечисленного не помогло, пожалуйста, предоставь больше информации о том, как ты создаешь и настраиваешь серверное приложение, и я постараюсь помочь тебе более конкретно.
не юзал Qt
вангую, QNetworkInterface::allAddresses выдает адреса всех локальных адаптеров.
вангую, QNetworkInterface::allAddresses выдает адреса всех локальных адаптеров.
Михаил Ларин
Да, а return прерывает их поиск после первого же подходящего адреса.
Прежде всего, убедитесь, что вы используете корректный IP-адрес и порт сервера при попытке подключиться к нему с другого компьютера.
Если вы используете правильные IP-адрес и порт, проверьте следующие моменты:
1. **Правильность IP-адреса и порта:** Убедитесь, что вы используете правильный IP-адрес и порт при попытке подключения. Вы должны использовать IP-адрес компьютера в вашей локальной сети, на котором запущен сервер.
2. **Проверка конфигурации сети:** Попробуйте подключиться к серверу с другого устройства в той же сети, чтобы убедиться, что проблема не в конфигурации сети.
3. **Проверка настроек сервера:** Убедитесь, что сервер настроен на прослушивание подключений с любого IP-адреса, а не только с localhost. Это можно сделать, передав `QHostAddress::Any` в метод `listen` вашего сервера:
```cpp
server->listen(QHostAddress::Any, port);
```
4. **Отключение брандмауэра:** Вы уже отключили брандмауэр, но в некоторых случаях может потребоваться настроить правила брандмауэра, чтобы разрешить входящие соединения к вашему приложению.
5. **Проверка роутера:** Некоторые роутеры могут блокировать входящие соединения. Проверьте настройки своего роутера, чтобы убедиться, что он не блокирует соединения к порту, который вы используете.
Если все эти шаги не помогут, возможно, вам придется воспользоваться сетевым анализатором, таким как Wireshark, чтобы увидеть, что происходит на сетевом уровне при попытке подключения к серверу.
Если вы используете правильные IP-адрес и порт, проверьте следующие моменты:
1. **Правильность IP-адреса и порта:** Убедитесь, что вы используете правильный IP-адрес и порт при попытке подключения. Вы должны использовать IP-адрес компьютера в вашей локальной сети, на котором запущен сервер.
2. **Проверка конфигурации сети:** Попробуйте подключиться к серверу с другого устройства в той же сети, чтобы убедиться, что проблема не в конфигурации сети.
3. **Проверка настроек сервера:** Убедитесь, что сервер настроен на прослушивание подключений с любого IP-адреса, а не только с localhost. Это можно сделать, передав `QHostAddress::Any` в метод `listen` вашего сервера:
```cpp
server->listen(QHostAddress::Any, port);
```
4. **Отключение брандмауэра:** Вы уже отключили брандмауэр, но в некоторых случаях может потребоваться настроить правила брандмауэра, чтобы разрешить входящие соединения к вашему приложению.
5. **Проверка роутера:** Некоторые роутеры могут блокировать входящие соединения. Проверьте настройки своего роутера, чтобы убедиться, что он не блокирует соединения к порту, который вы используете.
Если все эти шаги не помогут, возможно, вам придется воспользоваться сетевым анализатором, таким как Wireshark, чтобы увидеть, что происходит на сетевом уровне при попытке подключения к серверу.
Похожие вопросы
- Как увидеть qt c++ и не испугаться разработки в linux?
- C++ напишите функцию 2 треугольника похожи или нет
- Как прикрутить кнопки qt к файлу с чистым с++
- C++ WINAPI помогите пожалуйста разобраться с LNK1120 при подключении к mysql
- C++Builder 10.3 Ошибка подключения к mysql
- Задача по C++
- Какие из этих книг вы посоветуете прочесть в первую очередь чтобы повысить свои знания в C/C++?
- Почему создатель Linux Линус Торвальдс называет C++ ужасным языком, а ядро ОС Linux пишется только на Си?
- День добрый \[-_-]/ вопрос по вузовскому программированию на си(C)
- Задача на C++ (Остатки).