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

Как заставить сокет клиента слушать данные с сервера постоянно? - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Нарисовать лайаут, помещающийся в экране не зависимо от его размера http://www.cyberforum.ru/android-dev/thread1660255.html
Всем привет, Подскажите, как нарисовать лайаут чтобы помещался в экране не зависимо от ещё размера, Заранее спасибо!
Программирование Android Какова механика боя в онлайн андроид игре? Здраствуйте. Мне нужна такая помощь, хочу разобраться в механике боя в онлайн андроид игре: есть войско состоящее из нескольких видов войск,у каждого войска свои характеристики атаки и защиты, оно нападает на другое войско. какой файл в андроид приложении отвечает за итого сражения? http://www.cyberforum.ru/android-dev/thread1660103.html
Программирование Android Создание программы с переключающимися окнами
задача: сделать программу с переклющающимися окнами, реализация интент, меню, игровое поле, графические кнопки для переключения, десяти значный РАН дом с неповторяющимися числами
Программирование Android Bluetoth отправка данных без подтверждения и сопряжения
Может кто то слышал? Знает? Кто нибудь работал с bluetoothSocket, createInsecureRfcommSocketToServiceRecord- это то что мне нужно? т.е. как я понял это как раз для отправки данных без сопряжения? Чета я не вкуриваю:) Если знаете, помогите разобраться) if (BluetoothDevice.ACTION_FOUND.equals(action)) { BluetoothDevice device = (BluetoothDevice)...
Программирование Android Каким образом мультитач определяет второе и последующее касание? http://www.cyberforum.ru/android-dev/thread1660074.html
Уважаемы форумчане, есть какое то объяснение по такому вопросу? Каким образом мультитачь определяет второе и последующее касание? Если вдуматься, то палец не иголка, а получаю я только x и y хотя по идею мог бы получить все координаты касания, зоной больше похожей на круг Вопрос в том как получить все координаты этой зоны и возможно ли это?
Программирование Android Sockets и потоки, разное поведение на устройствах Привет всем. Такая проблема - пытаюсь создать сокеты и обменяться словами. Код сервера public class ServerActivity extends AppCompatActivity { public String str; ServerSocket serverSocket; Socket socket; DataInputStream dataInputStream; подробнее

Показать сообщение отдельно
CeBePHb1YY
0 / 0 / 0
Регистрация: 11.01.2013
Сообщений: 12

Как заставить сокет клиента слушать данные с сервера постоянно? - Программирование Android

11.02.2016, 19:54. Просмотров 427. Ответов 8
Метки (Все метки)

есть такой клиент
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
 
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.Socket;
import java.net.UnknownHostException;
 
public class LoginActivity extends AppCompatActivity {
 
    Button buttonEnter;
    TextView textViewHeader;
    EditText editTextLogin;
    Socket client = null;
    DataOutputStream dataToServerStream = null;
    DataInputStream dataFromServerStream = null;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
 
        buttonEnter = (Button) findViewById(R.id.buttonEnter);
        textViewHeader = (TextView) findViewById(R.id.textViewHeader);
        editTextLogin = (EditText) findViewById(R.id.editTextLogin);
 
        //asyntask
        class ConnectToServer extends AsyncTask<Void, Void, Void>{
            @Override
            protected Void doInBackground(Void... voids) {
                //подключение к серверу
                try {
                    client = new Socket("193.106.169.249", 1605);
                    dataToServerStream = new DataOutputStream(client.getOutputStream());
                    dataFromServerStream = new DataInputStream(client.getInputStream());
                } catch (UnknownHostException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    System.out.println("Got an IOException: " + e.getMessage());
                }
                return null;
            }
        }
 
        ConnectToServer Connect = new ConnectToServer();
        Connect.execute();
 
 
        class GetDataFromServer extends AsyncTask<Void, Void, Void>{
 
            @Override
            protected Void doInBackground(Void... voids) {
                //чтение данных с сервера
                while (true) {
                    try {
                        String r = "";
                        byte[] readBuffer = new byte[5 * 1024];
                        int read = 0;
                        read = dataFromServerStream.read(readBuffer);
                        if (read != -1) {
                            byte[] readData = new byte[read];
                            System.arraycopy(readBuffer, 0, readData, 0, read);
                            try {
                                r = new String(readData, "UTF-8");
                            } catch (UnsupportedEncodingException e) {
                            }
                        }
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    return null;
                }
            }
        }
 
        GetDataFromServer GetData = new GetDataFromServer();
        GetData.execute();
 
 
        //обработчик нажатий
        View.OnClickListener OnClickListener = new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                switch (view.getId()){
                    case R.id.buttonEnter:
                        try {
                            //отправка данных на сервер
                            String sendText = editTextLogin.getText().toString();
                            byte[] buf = sendText.getBytes("UTF-8");
                            dataToServerStream.write(buf, 0, buf.length);
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                        break;
                }
            }
        };
 
        buttonEnter.setOnClickListener(OnClickListener);
    }
}
работает хорошо - подключается, по нажатию кнопки данные отправляются, но при отправки данных сервер отправляет в ответ данные, а приложение только один раз их видит, при последующих нажатия он не читает данные с сервера. скажи как исправить?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru