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

Теряются данные ответа Socket Server - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android База данных для приложения http://www.cyberforum.ru/android-dev/thread1810495.html
Пишу приложение "расписание". Хочу сделать так, чтобы на сервер скачивались необходимые excel файлы с некоторого сайта, и из них формировалась база данных. Которую затем приложение сохраняет в памяти устройства, и проверяет на наличие обновлений раз в полгода. Подскажите с чего начать, как это реализовать и т.д.
Программирование Android Открыть фото из галереи Пол дня и ночи сижу изучаю. Прошу помощи , сначал код что настряпал : procedure TForm1.Button2Click(Sender: TObject); var ExtFile: string; mime: JMimeTypeMap; ExtToMime: JString; Intent: JIntent; http://www.cyberforum.ru/android-dev/thread1810410.html
Программирование Android Выбор начальной Activity экрана
Здравствуйте.Имеется начальный шаблон Navigation Drawer. Каждый Item из NavigationView вызывает определенный фрагмент Layout.Как сделать так, чтобы при первом запуске приложения показывался не layout главного экрана, а например layout первого элемента из выдвигающейся шторки?
Выбор контактов для отправки смс Программирование Android
Нужно из программы отправить смс . Для этого нужно чтобы пользователь из своих контактов выбрал одного или несколько получателей смс. Как можно реализовать выбор контактов?
Программирование Android Метод binding.setViewModel() из библиотеки Data Binding Library недоступен http://www.cyberforum.ru/android-dev/thread1810254.html
Добавил в раздел android файла build.gradle модуля app значение dataBinding {enabled = true} build.gradleapply plugin: 'com.android.application' android { compileSdkVersion 24 buildToolsVersion "24.0.1" dataBinding{ enabled=true }
Программирование Android Остановить другое приложение Как обращаться к работающим приложениям(процессам) в андроиде? Под обращением я понимаю (Выключить/Включить/Спарсить данные и т.д) Очень буду благодарен за манул RU/ENG(будет еще круче) подробнее

Показать сообщение отдельно
den_droid
6 / 7 / 1
Регистрация: 18.05.2015
Сообщений: 181

Теряются данные ответа Socket Server - Программирование Android

21.09.2016, 06:07. Просмотров 440. Ответов 7
Метки (Все метки)

Здравствуйте!
Динамические данные (данные которые сервер шлёт не по запросу на открытый поток клиента) не приходят на клиент. Точнее приходят, если пошевелить поток. Также я вырубил сервер и пошевелил поток. Данные пришли с мертвого сервера. Отсюда вывод, что они приходят но не обрабатываются. В чем может быть проблема?
Под "пошевелить" я подразумеваю вызвать следующим образом: newTransmission("test", null, false)
Первый раз я подключаюсь к серверу: newTransmission("test", "ip", true)
При чем, сервер пишет в файл что данные успешно отправлены, а клиент тупо не принимает. Данные сервер может отправить в любое время.
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
public void newTransmission(final String msg, final String ip, final boolean newConnect) {
        Runnable runnable = new Runnable() {
            public void run() {
                //if (type.equals("server-msg-history")) {
                try {
                    if (newConnect) {
                        client = null;
                        client = new Socket(ip, 12864); 
                        client.setSoTimeout(1000); // пробовал и без этого
                        dataOutputStream = new DataOutputStream(client.getOutputStream()); 
                        dataInputStream = new DataInputStream(client.getInputStream()); 
                    }
                    dataOutputStream.writeUTF(msg);
                    ddServerAnswer = dataInputStream.readUTF();
                    
                    tvInf.post(new Runnable() {
                            @Override
                            public void run() {
                                Toast.makeText(getApplicationContext(), ddServerAnswer, Toast.LENGTH_SHORT).show();
                                try {
                                    JSONArray jaAnsw = new JSONArray(ddServerAnswer);
                                    switch (jaAnsw.getString(0)) {
                                        case "player-id":
                                            Toast.makeText(getApplicationContext(), "You player id: " + jaAnsw.get(1), Toast.LENGTH_LONG).show();
                                            player_id = jaAnsw.getInt(1);
                                            currentPlayer = (TextView) findViewById(jaAnsw.getInt(1));
                                            break;
                                    }
                                } catch (JSONException e) {}
                                catch (Exception e) {
                                    Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
                                }
                                
                            }
                        });
                    
                    new DenDroidTools().createFile(ddServerAnswer, new File(Environment.getExternalStorageDirectory() + "/dendroid"), "test_client_" + System.currentTimeMillis() + ".txt");
                    //dataInputStream.close();
                    //dataOutputStream.close();
                    //client.close();
                } catch (UnknownHostException e) {
                    e.printStackTrace();
                    //UnknownHostExceptionErr = "true";
                } catch (IOException e) {
                    e.printStackTrace();
                    //UnknownHostExceptionErr = "io";
                    //Toast.makeText(getApplicationContext(), "Ошибка: IOException", Toast.LENGTH_LONG).show();
                } catch (Exception e) {
 
                }
            }
        };
 
        thread = new Thread(runnable);
        thread.start();
    }
Надеюсь на помощь, заранее спасибо!

Добавлено через 17 часов 0 минут
Проблемма не с выводом а с обработкой. Как исправить? Пробовал уже и вайлом...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru