Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
Программирование Android Воспроизведение звука https://www.cyberforum.ru/ android-dev/ thread1961489.html
Всем добра. В приложении использовал SoundPool для воспроизведение множества звуков, но возникли другие потребности, которые SoundPool дать не может. Можете подсказать, что можно использовать, когда в приложении нужно воспроизводить неоднократно звуки, проверять запущен ли звук и не нагружать процессор. Думал подойдёт MediaPlayer, увы, с ним много хлопот. И с поточностью не работает, каждый раз...
Программирование Android Clean Architecture (MVP), как обойтись без Context для Data Layer
На сколько я понял разделение по слоям, мы должны избегать использования Context где бы то ни было, кроме View. Я понимаю, что четких ограничений нет и, по большому счету, что мы себе разрешили использовать, то и используем. Я видел примеры, где на слое Бизнес логики идет обращение к Context для получения доступа к строковым ресурсам. На мой взгляд использование Context для работы с БД это чуть...
Программирование Android Обработка исключения при создании БД https://www.cyberforum.ru/ android-dev/ thread1961411.html
Доброго времени суток! Вылетает исключение при создании бд пишет что ошибка синтаксическая. но я тысячу раз проверил запрос и не пойму где косяк Помогите новичку. Непосредственно само исключение: 04-16 11:14:39.012 20484-20484/ru.rptm.cookbook_test E/AndroidRuntime: FATAL EXCEPTION: main Process: ru.rptm.cookbook_test,...
Программирование Android API 2ГИС на Android Studio https://www.cyberforum.ru/ android-dev/ thread1961403.html
Нужно удалять маркер по нажатию на него.Вот что имею <!DOCTYPE html> <html> <head> <title>API карт 2ГИС</title> <script src="http://maps.api.2gis.ru/2.0/loader.js?pkg=full"></script> <script type="text/javascript"> DG.then(function () {
Не запускается openCV на андройде Программирование Android
Переношу программу на джаве по распознаванию лиц на андройд. Работаю в Android Studio. Пытаюсь запустить класс Train с таким кодом: import com.minhaskamal.genderRecognizer.weightedPixel.WeightedStandardImage; import com.minhaskamal.genderRecognizer.weightedPixel.WeightedStandardPixelTrainer; import org.opencv.core.Core; import java.io.File; import java.io.FilenameFilter;
Программирование Android Метод remove() у ArrayList не умеет работать с переменными? https://www.cyberforum.ru/ android-dev/ thread1961191.html
Есть массив EditText-ов. Если указывать индекс его методу remove() напрямую - элемент удаляется; Если указывать индекс через переменную - Не удаляется. На картинке нагляднее показано.
Программирование Android Перехват уведомлений https://www.cyberforum.ru/ android-dev/ thread1961105.html
Здравствуйте! Как перехватить уведомления, которые идут в строку состояния? Смотрел NotificationListenerService, но там Api 18+. А мне необходимо 17+. Как это реализовать? Моя задача - создать кастомный статус бар. Буду очень благодарен за помощь.
Программирование Android Заполнить массив типа ContentProviderOperation
Здравствуйте, появилась проблема. Делаю телефонную книжку, конкретно - изменение контакта. Прочитал о способе изменения данных: ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI) .withSelection(ContactsContract.Contacts.DISPLAY_NAME + "=" + name, new...
Программирование Android Как указать в какой EditText вводить число? https://www.cyberforum.ru/ android-dev/ thread1960993.html
В дополнение к ранее созданной теме,такой вопрос. Имеются ,все те же три поля EditText,отключена виртуальная клавиатура,а ввод чисел осуществляется с Button(ов). По-умолчанию активно первый EditText следовательно все введенные числа с button будут попадать в него, но допустим я нажал на второй EditText,и как сообщить Button ,что запись должна происходить во второе поле. ну и аналогично для...
Программирование Android Ввод в один EditText и авто-вычисление в двух других EditText https://www.cyberforum.ru/ android-dev/ thread1960989.html
Всем привет. Есть три поля EditText,виртуальные клавиатуры у всех заблокированы,а ввод чисел в поле осуществляется с Button(ов). Вопрос в том ,как при вводе в один из EditText(ов) любого числа, сразу же происходили вычисления в других EditText.
Как в Android Studio обращаться к компонентам (кнопкам, полям, и т.д.)? Программирование Android
как например делать что бы при клике на кнопку(в андроид студио)всплывало сообщение или переменная одного поля присваивалась другому. вообщем буду признателен всем кто подскажет. заранее спасибо)))
Программирование Android JSON из URL в ListView | Fragment Здравствуйте! Есть фрагмент показывающий listView. Также есть локальный сайт (http://stat/api/main/) возвращающий Json-массив. Как парсить этот самый Json и показать его в ListView? (Также при клике надо передать элемент id в другой Fragment или Activity). http://stat/api/main/ {
1 / 1 / 0
Регистрация: 21.10.2016
Сообщений: 29
0

Сеть через Socket - Программирование Android - Ответ 10336950

16.04.2017, 14:34. Показов 422. Ответов 6
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Есть программа (клиент), которая должна подключить к серверу, а он передаст ip других серверов и вообщем нужно иметь несколько подключений одновременно. Но возникает проблема (из AsyncTask'а не получается создать другой AsyncTask) при создании подключения к серверу => и к другим серверам. Я только начинал программировать на Java и всех особенностей не знаю, поэтому, пожалуйста, не надо оскорблять и т.д. Вообщем, помогите, пожалуйста, решить эту проблему и может быть оптимизировать программу. P.s. через socket обязательно, поэтому не надо предлагать Retrofit и т.п.

"MyApp"
Java
1
2
3
4
5
6
7
8
9
10
public class MyApp extends Application {
 
    @Override
    public void onCreate() {
        super.onCreate();
 
        // Инициализируем класс ClientSocket (Singleton)
        ClientSocket.initInstance();
    }
}
"ClientSocket"
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
class ClientSocket {
 
    private int numberOfConnections = 5;
    private final String SERVER = "192.168.1.36"; // Пока пробую в локальной сети
    private final int PORT = 8080;
    private SocketData[] sockets = new SocketData[numberOfConnections]; // Ограничение одновременных подключений
    private static ClientSocket instance;
 
    static void initInstance() {
        if (instance == null) {
            instance = new ClientSocket();
 
            // Создаем соединение с сервером
            instance.createConnection(SERVER);
        }
    }
 
    static ClientSocket getInstance() {
        return instance;
    }
 
    void createConnection(String ip){
        CreateConnection createConnection = new CreateConnection();
        createConnection.execute(ip);
    }
 
    void deleteConnection(int index){
        try{
            sockets[index].getStreamRead().cancel(false);
        } catch (Exception e){
            e.printStackTrace();
        }
        sockets[index] = null;
    }
 
    void connected(int index){
        sockets[index].setConnected(); // Подключение установленно
    }
 
    private class CreateConnection extends AsyncTask<String, Void, Void>{
 
        @Override
        protected Void doInBackground(String... params) {
            try {
                final String SERVER = params[0];
 
                // Создаем подключение
                InetAddress serverAddress = InetAddress.getByName(SERVER);
                Socket socket = new Socket(serverAddress, PORT);
 
                // Начинаем слушать соединение
                startRead(socket);
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }
 
        private void startRead(Socket socket){
 
            // Сохраняем данные о подключении
            for (int i = 0; i < numberOfConnections; i++){
                if (sockets[i] == null){
                    StreamRead stream = new StreamRead();
                    stream.execute(i, socket);
                    sockets[i] = new SocketData(socket, stream);
                    checkConnection(i);
                }
            }
        }
 
        private void checkConnection(int index){
            JSONObject message = new JSONObject();
            try {
                message.put("command", "ping");
                StreamWrite streamWrite = new StreamWrite();
                streamWrite.execute(message, sockets[index].getSocket());
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }
}
"StreamRead"
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
46
47
48
class StreamRead extends AsyncTask<Object, Void, Void> {
 
    private int index;
 
    @Override
    protected Void doInBackground(Object... params) {
        try {
            // Получаем номер подключения
            index = (int) params[0];
 
            // Получаем socket
            Socket socket = (Socket) params[1];
 
            // Создаем чтение потока
            ObjectInputStream stream = new ObjectInputStream(socket.getInputStream());
 
            // Слушаем соединение, пока не закрыли его
            while (this.isCancelled()){
                JSONObject message = (JSONObject) stream.readObject();
                if (message != null){
                    readMessage(message);
                }
            }
 
            // Освобождаем ресурсы
            socket.close();
        } catch (Exception e){
            e.printStackTrace();
        }
        return null;
    }
 
    private void readMessage(JSONObject message){
        try {
            switch (message.get("command").toString()){
                case "ping":
                    ClientSocket.getInstance().connected(index);
                    break;
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
 
    @Override
    protected void onPostExecute(Void aVoid) {
        ClientSocket.getInstance().deleteConnection(index);
    }
"StreamWrite"
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class StreamWrite extends AsyncTask<Object, Void, Void> {
 
    @Override
    protected Void doInBackground(Object... params) {
        try {
            // Json запрос
            final JSONObject message = (JSONObject) params[0];
 
            // Получаем поток для отправки
            final ObjectOutputStream stream =
                    new ObjectOutputStream(((Socket) params[1]).getOutputStream());
 
            // Отправляем
            stream.writeObject(message);
 
            // Закрываем поток отправки
            stream.close();
        } catch (Exception e){
            e.printStackTrace();
        }
        return null;
    }
}


Вернуться к обсуждению:
Сеть через Socket Программирование Android
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.04.2017, 14:34
Готовые ответы и решения:

Передать файл через socket или через ftp api
Посоветуйте как поступить: Есть файл на устройстве его нужно загрузить на сервер. 1 Загружать...

Несколько сетей. Настроить socket на определённую сеть
Здравствуйте! Помогите пожалуйста реализовать. У меня две одинаковых камеры (goPro). Общаются с...

Невозможно создать Socket: Socket sock = new Socket(someHostString,somePortInt);
Народ! Помогите пожалуйста. Вся красота губится на exception что выскакивает в момент создания...

Не получается раздовать интернет через PPPoE сеть 1 в локальную сеть 2
пытался настроить сетевухи по этой http://ru.d-ws.biz/articles/ics-from-windows-7.shtml инструкции...

6
16.04.2017, 14:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.04.2017, 14:34
Помогаю со студенческими работами здесь

Объединить сеть офиса и удаленные компы в одну сеть через OpenVPN(+bridge)
Задача: Объединить сеть офиса и удаленные компы в одну сеть с единым адресным пространством....

Передача через Socket
Помогите пожалуйста разобраться с передачей содержимого Edit1 через TcpClient , кокого типа должны...

Не подключается через Socket
Здравствуйте, пишу приложение, использующее соединение через сокеты. Вот код сервера: ...

Подключение через Socket
Недавно начал изучать разработку под андроид и вот поставили задачу написать некий клиент, который...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru