Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 27.10.2014
Сообщений: 12

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

28.10.2014, 17:24. Показов 1567. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
День добрый. Решил все же создать тему...
Запускаю типовый пример с сокетами. Из двух консолек работает прекрасно. Прописываю я 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();
  }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.10.2014, 17:24
Ответы с готовыми решениями:

Не могу запустить эмулятор Андроида на Windows 7
Здравствуйте всем! Исходные данные: Комп с Windows 7 (Intel Celeron, 2 Гб ОЗУ). Версия Java - 1.8.0_20. В переменных среды (системные...

Eclipse не могу запустить эмулятор Андроида
Моя первая программа Hello World, все сделал как надо и эмулятор создан и все ... но вот такой лог запуска: Во первых...

Эмулятор андроида bluestacks
доброго времени суток помогите пожалуйста решить проблему. После обновления онлайн иргы alliance wars это приложение на BlueStacksе не...

5
0 / 0 / 0
Регистрация: 27.10.2014
Сообщений: 12
30.10.2014, 13:05  [ТС]
Попробовал на смартфон скинуть - тоже не законнектился. Порт открыт, как 2ip показывает. Опять же клиент с консоли подключается, а тот же самый код по нажатию кнопки в приложении Android - нет.
0
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
 Аватар для tankomaz
443 / 442 / 100
Регистрация: 14.10.2012
Сообщений: 1,146
Записей в блоге: 9
03.11.2014, 01:07
в манифесте прописали разрешение на работу с сетью? (кстати на форуме есть андроид раздел)
0
0 / 0 / 0
Регистрация: 27.10.2014
Сообщений: 12
03.11.2014, 10:19  [ТС]
Нет, Манифест не трогал.
Я подумал, что сетей тут больше чем Андроида)
0
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
 Аватар для tankomaz
443 / 442 / 100
Регистрация: 14.10.2012
Сообщений: 1,146
Записей в блоге: 9
03.11.2014, 11:59
Пропишите разрешение - будет работать, иначе андроид ложложит ограничение на работу
0
0 / 0 / 0
Регистрация: 27.10.2014
Сообщений: 12
04.11.2014, 07:58  [ТС]
Спасибо! Прописал разрешение, все заработало. Вопрос снят.
Добавил в манифесте это:
<uses-permission
android:name="android.permission.INTERNE T" />
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.11.2014, 07:58
Помогаю со студенческими работами здесь

Подскажите эмулятор Андроида ! Что проверить верстку сайта в нем!
Укажите хоть один эмулятор, работающий (вернее ссылку на него) А ТО ЧАЩЕ ВСЕГО ВСТРЕЧАЮТСЯ ТАКИЕ КОТОРЫЕ ПРОСТО УСТАНАВЛИВАЮТСЯ а дальше...

Php сокеты и unix-сокеты
Здравствуйте, есть программа, написанная на С под Linux. При её работе в памяти хранятся несколько массивов, которые необходимо обработать...

Восстановление Андроида
Всем здрасьте! Хотел я на Samsung Galaxy Young (galaxy y s5360) кастомную джелибинку, сделал все точно по иснтрукции, но теперь телефон...

Удаление вируса с андроида
Добрый день. Подскажите, как лучше подлечить андроид. Пробовал касперского, доктора веб. НЕ ПОМОГАЕТ. Подскажитре хороший антвирус, как...

Api андроида выше 28,и с++
5, 6, 7, and 8 4.1.x – 4.4.x-----Это версии платформ указанные в билдере в пункте поддержка платформ. Вопрос! Как тогда разрабатывать...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru