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

Sockets и потоки, разное поведение на устройствах - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Сколько гигов выделяет Google Play под приложения http://www.cyberforum.ru/android-dev/thread1659919.html
Не могу найти, но знаю что есть, есть такая дата
Android Изучаю AsynkTask Пытаюсь через AsynkTask получить get запрос и вывести объекты из ссылки. Но судя по логам сервера запрос туда да же не приходит, хотя idea показывает что все отработало. Подскажите в чем проблема? Соответственно и внутренний принт не отработал public class jsontet extends Activity { private TextView textView2; @Override protected void onCreate(Bundle savedInstanceState) { http://www.cyberforum.ru/android-dev/thread1659909.html
Android Retrofit, JSON, @POST, @GET
Уважаемые программисты, прошу вашей помощи! Хожу на курсы по разработке мобильных приложений, месяц, как хожу, мало еще что знаю, но дали задание, дополнительное, высокого уровня сложности, попробовать реализовать и чтобы сами учились обучаться... Так вот, задание в том, чтобы сделать простую регистрацию и авторизацию через приложение, данные отправляются на сервер. Использовать нужно...
Что за Log ?! Android
Dctv доброго времени суток. Помогите понять, что хочет от меня android studio. Ставлю на activity_main фотку через backraund На эмуляторе (физ. устройство) белый экран. Вот Log 02-11 11:41:35.921 2772-2772/? E/Zygote: Zygote: error closing descriptor libcore.io.ErrnoException: close failed: EBADF (Bad file number) ...
Android The following classes could not be found http://www.cyberforum.ru/android-dev/thread1659695.html
При создании проекта выдает вот такое. На лейаут ничего добавить не получается. Как исправить?
Android Imageview растянуть изображение по вертикали и обрезать по горизонтали Здравствуйте, для фона бокового меню нужно поместить картинку, что б по вертикали растягивалась, а по правой стороне обрезалась, пытаюсь как то через imageview сделать. Кто подобные задачи решал? подробнее

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

Sockets и потоки, разное поведение на устройствах - Android

11.02.2016, 13:30. Просмотров 248. Ответов 19
Метки (Все метки)

Привет всем. Такая проблема - пытаюсь создать сокеты и обменяться словами.
Код сервера

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
public class ServerActivity extends AppCompatActivity {
 
    public String str;
    ServerSocket serverSocket;
    Socket socket;
    DataInputStream dataInputStream;
    DataOutputStream dataOutputStream;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        super.onCreate(savedInstanceState);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_server);
        TextView textView = (TextView)findViewById(R.id.textView2);
        try {
            WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
            WifiInfo wifiInfo = wifiManager.getConnectionInfo();
            int ipAddress = wifiInfo.getIpAddress();
            str = String.format(Locale.getDefault(), "%d.%d.%d.%d",
                    (ipAddress & 0xff), (ipAddress >> 8 & 0xff),
                    (ipAddress >> 16 & 0xff), (ipAddress >> 24 & 0xff));
            textView.setText(str);
        } catch (Exception ex) {
            textView.setText("ОШИБКА ПОЛУЧЕНИЯ IP АДРЕСА");
        }
        mThr.start();
    }
 
    Thread mThr = new Thread(new Runnable() {
        @Override
        public void run() {
            try {
                serverSocket = new ServerSocket(8888);
                System.out.println("Listening :8888");
            } catch (IOException e) {
                e.printStackTrace();
            }
            while(true){
                try {
                    System.out.println("mtav ... !");
                    socket = serverSocket.accept();
                    dataInputStream = new DataInputStream(socket.getInputStream());
                    dataOutputStream = new DataOutputStream(socket.getOutputStream());
                  //  System.out.println("message: " + dataInputStream.readUTF());
                    dataOutputStream.writeUTF("Hello!");
                } catch (IOException e) {
                    e.printStackTrace();
                }
                finally {
                    if (socket != null) {
                        try {
                            socket.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
 
                    if (dataInputStream != null) {
                        try {
                            dataInputStream.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
 
                    if (dataOutputStream != null) {
                        try {
                            dataOutputStream.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
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
public class ClientActivity extends AppCompatActivity implements View.OnClickListener {
 
    Socket socket = null;
    DataOutputStream dataOutputStream = null;
    DataInputStream dataInputStream = null;
    public String ipaddr;
    public String InText;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        super.onCreate(savedInstanceState);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_client);
        EditText editText = (EditText)findViewById(R.id.editText);
        ipaddr = editText.getText().toString();
        Button start = (Button)findViewById(R.id.button);
        start.setOnClickListener(this);
    }
 
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.button: {
                mThr.start();
            }break;
 
 
            default:
                break;
        }
    }
 
    Thread mThr = new Thread(new Runnable() {
        @Override
        public void run() {
            try {
                socket = new Socket(ipaddr, 8888);
                dataOutputStream = new DataOutputStream(socket.getOutputStream());
                dataInputStream = new DataInputStream(socket.getInputStream());
                dataOutputStream.writeUTF("HELLO");
                Log.d("INNER", dataInputStream.readUTF());
            } catch (UnknownHostException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            finally{
                if (socket != null){
                    try {
                        socket.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
 
                if (dataOutputStream != null){
                    try {
                        dataOutputStream.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
 
                if (dataInputStream != null){
                    try {
                        dataInputStream.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    });
}

Пробовал на трех устройствах. На первом серверная часть работает, ошибок не выдает. На двух других выдает ошибку nullPointerException и указывает на строку socket = serverSocket.accept();
Кто может подсказать в чем проблема? Заранее спасибо
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru