Форум программистов, компьютерный форум CyberForum.ru

Эмулятор Андроида и сокеты - Android

Войти
Регистрация
Восстановить пароль
 
Elendil
0 / 0 / 0
Регистрация: 27.10.2014
Сообщений: 12
28.10.2014, 17:24     Эмулятор Андроида и сокеты #1
День добрый. Решил все же создать тему...
Запускаю типовый пример с сокетами. Из двух консолек работает прекрасно. Прописываю я localhost, или же внешний IP - все отлично подключается.
Но мне нужно поставить клиент на Андроид и вот тут начинаются проблемы. С эмулятора клиент коннектиться не хочет. Я знаю, что localhost машины, на которой запущен эмулятор, вроде прописывается как 10.0.2.2 Пробовал внешний IP, порт пытался пробросить - 0 эмоций. Я, наверное, не совсем понимаю, что еще сделать нужно, чтоб связать сетью эмулятор и машину.

Вот код клиентской части, запускается по нажатию на кнопку.
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
void send()
{
    Socket fromserver = null;
    BufferedReader in;
    String fserver;
    try {
 
        
        fromserver = new Socket("10.0.2.2", 4444);
        in  = new BufferedReader(new InputStreamReader(fromserver.getInputStream()));
        fserver = "1";
        fserver = in.readLine();
        in.close();
        Toast.makeText(this, "отправил", Toast.LENGTH_LONG).show();
        
    } catch (UnknownHostException e) {
        e.printStackTrace();
        Toast.makeText(this, "ошибка 1", Toast.LENGTH_LONG).show();
    }
    catch (IOException e) {
        e.printStackTrace();
        Toast.makeText(this, "ошибка 2", Toast.LENGTH_LONG).show(); //ВОТ ТУТ завершается.
       }
       finally{
             if (fromserver != null){
              try {
                  fromserver.close();
              } catch (IOException e) {
                  e.printStackTrace();
              }
             }
       }
  
  }

Вот типовый код сервера из примеров:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
public class Server {
 
  public static void main(String[] args) throws IOException {
    System.out.println("Welcome to Server side");
    BufferedReader in = null;
    PrintWriter    out= null;
 
    ServerSocket servers = null;
    Socket fromclient = null;
 
    // create server socket
    try {
      servers = new ServerSocket(4444);
    } catch (IOException e) {
      System.out.println("Couldn't listen to port 4444");
      System.exit(-1);
    }
 
    try {
      System.out.print("Waiting for a client...");
      fromclient= servers.accept();
      System.out.println("Client connected");
    } catch (IOException e) {
      System.out.println("Can't accept");
      System.exit(-1);
    }
 
    in  = new BufferedReader(new 
     InputStreamReader(fromclient.getInputStream()));
    out = new PrintWriter(fromclient.getOutputStream(),true);
    String input, output;
 
    System.out.println("Wait for messages");
    while ((input = in.readLine()) != null) {
     if (input.equalsIgnoreCase("exit")) 
         break;
     out.println("S ::: "+String.valueOf(Integer.parseInt(input)+1));
     System.out.println(input);
    }
    out.close();
    in.close();
    fromclient.close();
    servers.close();
  }
}

Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class Client{
  public static void main(String[] args) throws IOException {
    System.out.println("Welcome to Client side");
 
    Socket fromserver = null;
    fromserver = new Socket("185.37.57.61", 4444);
    BufferedReader in  = new BufferedReader(new InputStreamReader(fromserver.getInputStream()));
    PrintWriter    out = new 
     PrintWriter(fromserver.getOutputStream(),true);
    BufferedReader inu = new 
     BufferedReader(new InputStreamReader(System.in));
 
    String fuser,fserver;
 
    while ((fuser = inu.readLine())!=null) {
      out.println(fuser);
      fserver = in.readLine();
      System.out.println(fserver);
      if (fuser.equalsIgnoreCase("close")) break;
      if (fuser.equalsIgnoreCase("exit")) break;
    }
 
    out.close();
    in.close();
    inu.close();
    fromserver.close();
  }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2014, 17:24     Эмулятор Андроида и сокеты
Посмотрите здесь:

Программы для андроида Android
Android 2d игра для андроида
Свой Браузер для андроида Android
Eclipse не могу запустить эмулятор Андроида Android
Android Создание игр с андроида
Android Получить загруженность процессора андроида
Android Начало начал Андроида у Андрюши
Java приложение для андроида Android
Нужна программа для андроида Android
Android Файловый менеджер для андроида
Верстка для андроида Android
Android Не могу запустить эмулятор Андроида на Windows 7

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Elendil
0 / 0 / 0
Регистрация: 27.10.2014
Сообщений: 12
30.10.2014, 13:05  [ТС]     Эмулятор Андроида и сокеты #2
Попробовал на смартфон скинуть - тоже не законнектился. Порт открыт, как 2ip показывает. Опять же клиент с консоли подключается, а тот же самый код по нажатию кнопки в приложении Android - нет.
tankomaz
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
 Аватар для tankomaz
438 / 437 / 32
Регистрация: 14.10.2012
Сообщений: 1,147
Записей в блоге: 9
03.11.2014, 01:07     Эмулятор Андроида и сокеты #3
в манифесте прописали разрешение на работу с сетью? (кстати на форуме есть андроид раздел)
Elendil
0 / 0 / 0
Регистрация: 27.10.2014
Сообщений: 12
03.11.2014, 10:19  [ТС]     Эмулятор Андроида и сокеты #4
Нет, Манифест не трогал.
Я подумал, что сетей тут больше чем Андроида)
tankomaz
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
 Аватар для tankomaz
438 / 437 / 32
Регистрация: 14.10.2012
Сообщений: 1,147
Записей в блоге: 9
03.11.2014, 11:59     Эмулятор Андроида и сокеты #5
Пропишите разрешение - будет работать, иначе андроид ложложит ограничение на работу
Elendil
0 / 0 / 0
Регистрация: 27.10.2014
Сообщений: 12
04.11.2014, 07:58  [ТС]     Эмулятор Андроида и сокеты #6
Спасибо! Прописал разрешение, все заработало. Вопрос снят.
Добавил в манифесте это:
<uses-permission
android:name="android.permission.INTERNET" />
Yandex
Объявления
04.11.2014, 07:58     Эмулятор Андроида и сокеты
Ответ Создать тему
Опции темы

Текущее время: 05:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru