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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Сколько гигов выделяет Google Play под приложения http://www.cyberforum.ru/android-dev/thread1659919.html
Не могу найти, но знаю что есть, есть такая дата
Программирование Android Изучаю AsynkTask Пытаюсь через AsynkTask получить get запрос и вывести объекты из ссылки. Но судя по логам сервера запрос туда да же не приходит, хотя idea показывает что все отработало. Подскажите в чем проблема?... http://www.cyberforum.ru/android-dev/thread1659909.html
Программирование Android Retrofit, JSON, @POST, @GET
Уважаемые программисты, прошу вашей помощи! Хожу на курсы по разработке мобильных приложений, месяц, как хожу, мало еще что знаю, но дали задание, дополнительное, высокого уровня сложности,...
Что за Log ?! Программирование Android
Dctv доброго времени суток. Помогите понять, что хочет от меня android studio. Ставлю на activity_main фотку через backraund На эмуляторе (физ. устройство) белый экран. Вот Log 02-11...
Программирование 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. Просмотров 307. Ответов 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();
Кто может подсказать в чем проблема? Заранее спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru