- TCP \ IP-клиент – EHOSTUNREACH (нет пути к хосту)
- EHOSTUNREACH (нет маршрута к хосту) на Android HTTP
- ОТВЕТЫ
- Ответ 1
- Ответ 2
- EHOSTUNREACH (No route to host) on Android HTTP
- 2 ответа
- Похожие вопросы:
- How to Fix “No Route to Host” Connection Error on Linux
- Why Am I Getting the “No Route to Host” error?
- Host Is Offline/Service Isn’t Running
- Wrong Port
- Iptables Is Blocking the Connection
- Your DNS Is Improperly Configured
- The GUI Way
- Incorrect Network or Host Configuration
- Never Miss Out
TCP \ IP-клиент – EHOSTUNREACH (нет пути к хосту)
Я пытаюсь разработать приложение TCP / IP клиентского сервера. У меня есть сервер, работающий на моем ПК, и клиентское приложение работает на мобильном устройстве. Они оба находятся в одной сети Wi-Fi, но я не могу установить связь между ними. Хотя отладка клиентского приложения Android показала следующую ошибку:
Код, который я использую:
Что я делаю не так?
Ошибка маршрутного маршрута указывает на то, что при попытке подключения TCP соединение завершилось неудачно, потому что базовое программное обеспечение протокола не могло найти сетевой узел для маршрута сетевого узла на указанный целевой узел.
Исправление зависит от операционной системы, но в основном вам необходимо настроить таблицы маршрутизации, чтобы устройство, с которого вы пытаетесь подключиться, может выяснить, как связаться с устройством, к которому вы хотите подключиться.
Обычно вы указываете шлюз, к которому при попытке подключиться, запрос на соединение выходит из сетевого шлюза, который должен быть разрешен другими устройствами информационной технологии, такими как маршрутизаторы и т. Д.
Это похоже на Android-устройство, поэтому прежде всего убедитесь, что у вас есть возможность подключения Wi-Fi или сотовой сети. Другим было бы убедиться, что Wi-Fi или ячейка включены и работают.
Указанный IP-адрес обычно находится в частной подсети. Так что проверить, является ли устройство, к которому вы пытаетесь подключиться, находится в той же подсети, на которой установлено ваше устройство.
Вот документ о суб-сетях и маршрутизации .
Это похоже на сетевую проблему, а не на проблему Java. Или:
- Сеть на клиенте либо не знает, как маршрутизировать пакеты на сервер,
- Попытка подключения клиента к порту 4449 блокируется брандмауэром или фильтром пакетов или
- Вы используете неправильный IP-адрес.
(Сообщение «Нет маршрута к хосту» указывает на то, что это первая проблема, но брандмауэры иногда конфигурируются так, чтобы давать неверные ответы на нежелательный трафик.)
В любом случае вам будет лучше искать сайт о том, как настроить и / или сети и маршрутизацию.
Привет, у меня была такая же проблема в моем mac и запуске приложения в Android-устройстве. Я должен был сделать следующие 2 вещи, чтобы заставить его работать:
- Выключить брандмауэр в Mac
- Включить инфракрасный приемник (System Pref> Безопасность> Брандмауэр> Дополнительно)
И это сработало!
Я сталкиваюсь с той же проблемой, когда я разработал приложение для Android и общаюсь с настольным сервером java, чтобы решить проблему, просто отключите USB-кабель, который соединяет Android-телефон с ПК.
Хозяин недостижим, точно так же. Однако, если все – oK (хорошо сконфигурированный узел / сеть, хороший сигнал wifi, …). Вы можете принудительно ping serverIP процесс, используя ping serverIP (с телефона) или ping smartphone (с сервера).
Источник
EHOSTUNREACH (нет маршрута к хосту) на Android HTTP
Я пытаюсь подключиться к серверу в той же сети, что и мой Android-телефон через HTTP. Мой код выглядит следующим образом:
где возвращаемое содержимое String должно быть строкой JSON для анализа. В течение одного золотого момента мне удалось получить доступ к серверу, но для всех других попыток я либо столкнулся с TimeoutExceptions (я установил тайм-аут 60 секунд), либо более неприятную ошибку:
И это в свою очередь вызвано:
Я застрял здесь, так как не могу выполнить базовую аутентификацию для своего приложения. Что я делаю неправильно?
ОТВЕТЫ
Ответ 1
Убедитесь, что ваш сервер действительно работает!
Я столкнулся с одной и той же проблемой, получая то же Исключения, когда приложение Android отправляло запросы на компьютер в локальной сети. Как оказалось, служба webapi была недоступна, потому что компьютер (то есть «сервер» ) был выключен.
Также найдите журнал «TIMEDOUT». Это еще одно указание на то, что ваши настройки в порядке, и это сервер, который не отвечает.
p.s. Я знаю, что этот ответ приходит немного позже, но я все же думаю, что это может принести пользу другим, кто сталкивается с той же проблемой.
Ответ 2
В моем случае я тестировал смартфон с настройкой прокси. Я решил проблему отключения прокси-сервера в конфигурации телефона. Если кто-то застрял в этой ошибке, моя рекомендация состоит в том, чтобы подтвердить, что сеть эмулятора/физического устройства правильно настроена.
Источник
EHOSTUNREACH (No route to host) on Android HTTP
Я пытаюсь подключиться к серверу в той же сети, что и мой телефон Android через HTTP. Мой код выглядит следующим образом:
где возвращаемая строка содержимого должна быть строкой JSON для меня, чтобы разобрать ее. На один золотой момент мне удалось получить доступ к серверу, но для всех остальных попыток я либо столкнулся с TimeoutExceptions (я установил 60-секундный тайм-аут), либо с более неприятной ошибкой:
Это было вызвано:
А это, в свою очередь, было вызвано:
Я застрял здесь, так как не могу даже выполнить базовую аутентификацию для своего приложения. Что я делаю не так?
2 ответа
Я использую соединение TCP в своем приложении android. Соединение выполняется в выделенном потоке. Мой код: class ReceiverThread extends Thread < Handler handler; ReceiverThread(Handler h) < handler = h; >@Override public void run() < try < socketTCP = new Socket((SERVERIP), SERVERPORT); in = new.
У меня есть контейнер docker, в котором размещается веб-сайт api, написанный в Нанси. Вот исключение, которое возникает после выполнения веб-запроса при первом запуске контейнера: 4/22/2016 2:40:50 PM at API.SearchModule+ c__AnonStorey0.<>m__0 (System.Object _).
Убедитесь,что ваш сервер действительно работает!
Я столкнулся с точно такой же проблемой, получая точно такие же исключения, когда мое приложение Android отправляло запросы на компьютер в локальной сети. Как оказалось, служба webapi была недоступна, потому что компьютер (то есть «server») был выключен.
Кроме того, найдите журнал «TIMEDOUT». Это еще один признак того, что ваши настройки OK, и это сервер не отвечает.
p. s.Я знаю, что этот ответ приходит немного поздно, но я все еще думаю, что он может принести пользу другим, столкнувшимся с той же проблемой.
В моем случае я тестировал смартфон с настройкой прокси-сервера. Я решил проблему отключения прокси-сервера в конфигурации телефона. Если кто-то застрял в этой ошибке, моя рекомендация-удостовериться, что сеть эмулятора/физического устройства настроена правильно.
Похожие вопросы:
Errno::EHOSTUNREACH in UsersController#create No route to host — connect(2) при отправке почты с приложением Rails я получаю эту ошибку.
При использовании моего приложения на ics, после того как я изменяю свою сеть wifi с networkA на networkB, все запросы на изображения начинают возвращаться с исключением. не удалось с исключением.
Я использую DefaultHttpClient выполнить несколько downlaods. В случае отсутствия интернета я получаю SocketTimeoutException только для первой загрузки, а для следующих загрузок-.
Я использую соединение TCP в своем приложении android. Соединение выполняется в выделенном потоке. Мой код: class ReceiverThread extends Thread < Handler handler; ReceiverThread(Handler h) < handler.
У меня есть контейнер docker, в котором размещается веб-сайт api, написанный в Нанси. Вот исключение, которое возникает после выполнения веб-запроса при первом запуске контейнера: 4/22/2016 2:40:50.
Где я могу найти конфигурацию для сервера SMTP? **************/usr/lib/ruby/1.8/net/smtp.rb:551:in `initialize’: No route to host — connect(2) (Errno::EHOSTUNREACH) from.
Вот мой код: function sendMail($template = null, $to_email = null, $from_email = null, $subject = null, $contents = array()) < $this->Email->to = $to_email; $this->Email->subject =.
Я отлаживаю определенную проблему, которая появляется только тогда, когда я получаю no route to host error из сокета (в клиентских сетях). Однако эта ошибка не происходит в моей собственной сети.
У меня есть Crashlytics SDK, установленный в приложении Android (через ткань), и раньше он работал отлично. Внезапно я получаю ConnectionExceptions, и Crashlytics не может связаться со своим.
Сборка Maven в проекте Flex недавно перестала работать, хотя в коде не было никаких изменений. Сборка завершается со следующей ошибкой: Sep 08, 2016 12:00:21 AM.
Источник
How to Fix “No Route to Host” Connection Error on Linux
When you’re trying to connect to a service on Linux, “No route to host” is one of the last things you want to hear. It’s a broad message that means your computer can’t reach the target server, whether a local server daemon running on your system or a remote server that you can’t access for whatever reason. Here we show you how to fix the “no route to host” connection error in Linux.
Also read: Wi-Fi Not Working in Linux? Here’s How to Fix it
Why Am I Getting the “No Route to Host” error?
There are many reasons why you could be getting that error. Networking in Linux is a somewhat complicated stack that’s pretty intricate, and as a result, it’s tough to determine exactly where the issue is.
Host Is Offline/Service Isn’t Running
It may seem painfully obvious, but you should first check that the server that you’re trying to connect to is even online. It might have been taken down for maintenance or be experiencing issues.
The service itself might not have been started. If it’s your server, you can check to see if the service has been started and is running properly. To do that with Systemd, run the following command.
Wrong Port
You may be trying to connect on the incorrect port. Many system administrators choose to run commonly targeted services like SSH on different ports to help thwart would-be attackers.
If the server isn’t your own, check the available documentation or contact their support services.
For your own server, you can try using NMAP to figure out where you started your service.
If you think you used a really obscure port, you can use the -p- flag to scan them all. It will take a while though.
Also read: How to Show All Active SSH Connections in Linux
Iptables Is Blocking the Connection
You may have accidentally configured iptables to block connections on that port. You would receive the same message whether you configured iptables on the server or your desktop, so it’s worth checking both. To see your iptables rules, run the following command.
Your DNS Is Improperly Configured
If all else fails, you should try to ping the IP address that you’re looking to connect to. It could be that your computer isn’t connecting to a DNS server properly.
If the ping works but connecting a domain name doesn’t, you’re looking at a DNS issue.
Systemd users can run systemd-resolve —status to check the DNS servers that your system is using. It’s broken down by interface, so make sure to check the one that you’re actually trying to connect through.
In most cases your computer will discover the relevant DNS information over DHCP. If you’re using a static IP or something on your network is configured differently, you may have to set your DNS manually.
Open “/etc/systemd/resolved.conf.” In that file, uncomment the DNS line and add either the IP of your router or another known DNS server. The default fallback DNS for Systemd is Google’s DNS servers listed under FallbackDNS .
If you’re using OpenRC or another Systemd alternative, you can find your DNS information in “/etc/resolv.conf.”
If there’s nothing there, enter the IP address of your router or any other known DNS server that you’d prefer to use.
After, either restart networking or your entire computer.
The GUI Way
If you’re using a graphical desktop with Network Manager, you can edit your connection information that way. Open the applet or go through your system settings. Select your connection and find the “IPv4” tab. Switch the connection to “Manual” and manually enter in the IP address of your computer and the IP of your router as the gateway. Then, in the DNS field below, enter your router’s IP or the IP of another DNS server.
Also read: How to Run Nmap without Root or Sudo
Incorrect Network or Host Configuration
There are several other configuration options that may be incorrect. Any of them would make it impossible for your computer to connect to the server.
First, make sure that your computer’s network configuration is correct. Double-check the configuration files themselves and, of course, see if you can connect to the Internet another way.
Also read: How to Delete a Directory in Linux
If you’re using a specific hostname to connect or you’ve set up specific hosts on either the server or the client, you need to make sure both machines can connect to each other. Check the configurations of “/etc/hosts,” “/etc/hosts.allow,” and “/etc/hosts.deny.”
Finally, check your server configuration. Something may be improperly configured on the server, preventing clients from connecting properly.
Hopefully, using these tips has allowed you to fix whatever issues were happening that caused the “No Route to Host” error. Meanwhile, you can learn how to control your Wi-Fi network in Linux or check if your firewall is blocking any incoming and outgoing connection.
Never Miss Out
Receive updates of our latest tutorials.
John is a young technical professional with a passion for educating users on the best ways to use their technology. He holds technical certifications covering topics ranging from computer hardware to cybersecurity to Linux system administration.
Источник