Android проверить, если удаленный сервер подключен - PullRequest
2 голосов
/ 04 февраля 2012

Я новичок в программировании на Android и столкнулся с проблемами, которых не было в родной Java.Когда я запускаю этот код на моем компьютере, он работает правильно.Но, когда я запускаю его на своем устройстве. Я ничего не получаю, я даже пытался отправить сообщение в пользовательский интерфейс, и для этого нет logcat.Я не уверен, что не так.

                try{
                    Socket socket = new Socket(serverAddr, SERVER_PORT);
                    Log.i("TAG","Socket connected");    
                }catch(IOException e){
                    Log.i("TAG","Socket not connected");
                }

Обновление 1: я просто изменил код .. ничего особенного и понял, что через 2 минуты или около того он делает то, что должен был сделать ??Это как-то связано с поддержкой флагов?Или в любом случае я могу запустить код всего на секунду или две и остановить его.Пожалуйста, поймите, что код ниже строки создания сокета выполняется только через 2 минуты, если сервер не работает.Вот мой код:

    try{
InetAddress serverAddr = InetAddress.getByName(serverIP);   
//Line below executes with no delay
postToUI("Trying to connect to standalone server" + "\n\n");
socket = new Socket(serverAddr, SERVER_PORT);
//Line below executes after 2 minutes
postToUI("Successfully connected to standalone server" + "\n\n");

}catch(ConnectException e){
    postToUI("Socket not connected");
}catch(IOException e){
    postToUI("Socket not connected");
}   

1 Ответ

0 голосов
/ 23 июля 2012

Я сделал очень мало разработок для Andrioid, поэтому не кусайте меня smiley .

Возможные причины, по которым хост может не общаться с клиентом

  • Хост имеет брандмауэр, который может закрывать соединение (маловероятно)
  • Хост может неожиданно отключиться, например, сбой питания (маловероятно)
  • Хост может неправильно переадресовывать порт (возможно)
  • Ваше приложение andriod не имеет надлежащего манифеста, позволяющего использовать сокеты.
  • Возможно, на вашем устройстве andrioid, которое вы тестируете, отключен Интернет, который можно легко включить.
  • Адрес хоста мог измениться, если он динамический.

Для logcat я думаю, что logcat отображает только сообщения журнала для основного потока.Но я не уверен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...