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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Drago56
0 / 0 / 0
Регистрация: 17.04.2011
Сообщений: 37
#1

WiFi, создание сокета в новом потоке - Программирование Android

07.06.2016, 16:40. Просмотров 129. Ответов 0
Метки нет (Все метки)

Подскажите ошибку. Есть точка вай фая уже подключенная к андроиду. Пытаюь создать сокет в новом потоке MyThred2 IP:192.168.2.2 Порт:1234
Код создание сокета и запуск потока:
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
   Socket client = null;
                           // int r = 0;
                            try {
                                //client = new Socket(java.net.InetAddress.getByName("192.168.2.2"), 1234);
                                client = new Socket();
                                client.bind(null);
 
                                client.connect(new InetSocketAddress("192.168.2.2", 1234),1234);
                                client.setKeepAlive(true);
                            } catch (UnknownHostException e) {
                                Log.d(TAG, "соед1"  );
                            } catch (IOException e) {
                                Log.d(TAG, "соед2"  );
                            }
                            catch (NetworkOnMainThreadException e) {
                                Log.d(TAG, "соед3"  );
                            }
                            if (client !=null)
                              // Log.d(TAG, "соед"  );
                                tt.setText("ok");
                            else     tt.setText("no");
 
                    try {
                        outStream = client.getOutputStream();
                    } catch (IOException e) {
                        // errorExit("Fatal Error", "In onResume() and output stream creation failed:" + e.getMessage() + ".");
                        tt.setText("Ошибка..Не подключено");
                    }
                    MyThred2 = new ConnectedThred2(client);
                    MyThred2.start();
Код потока:
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
    private class ConnectedThred2 extends Thread {
        private final Socket copySocket;
        private final OutputStream OutStrem;
        private final InputStream InStrem;
 
        public ConnectedThred2(Socket socket) {
            copySocket = socket;
            OutputStream tmpOut = null;
            InputStream tmpIn = null;
            try {
                tmpOut = socket.getOutputStream();
                tmpIn = socket.getInputStream();
            } catch (IOException e) {
            }
 
            OutStrem = tmpOut;
            InStrem = tmpIn;
        }
 
 
        public void run() {
            byte[] buffer = new byte[1024];
            int bytes;
 
            while (true) {
                try {
                    bytes = InStrem.read(buffer);
                    h.obtainMessage(RECIEVE_MESSAGE, bytes, -1, buffer).sendToTarget();
                    SystemClock.sleep(1000);
                } catch (IOException e) {
                    break;
                }
 
            }
 
        }
 
        public void sendData(String message) {
            byte[] msgBuffer = message.getBytes();
            // Log.d(TAG, "***Отправляем данные: " + message + "***"  );
 
            try {
                OutStrem.write(msgBuffer);
            } catch (IOException e) {
            }
        }
 
        public void cancel() {
            try {
                copySocket.close();
                redButton1.setImageResource(R.drawable.otkl);
                redButton2.setImageResource(R.drawable.otkl);
                redButton3.setImageResource(R.drawable.otkl);
                redButton4.setImageResource(R.drawable.otkl);
            } catch (IOException e) {
            }
        }
 
        public Object status_OutStrem() {
            if (OutStrem == null) {
                return null;
            } else {
                return OutStrem;
            }
        }
    }
Код приема информации:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 h = new Handler() {
            public void handleMessage(Message msg) {
                // sbprint="";
                switch (msg.what) {
                    case RECIEVE_MESSAGE:
                        byte[] readBuf = (byte[]) msg.obj;
                        String strIncom = new String(readBuf, 0, msg.arg1);
                        Log.d(TAG,"strIncom="+strIncom);
                        sb.append(strIncom);                                                // формируем строку
                        int endOfLineIndex = sb.indexOf("\r\n");
                        Log.d(TAG,"endOfLineIndex="+Integer.toString(endOfLineIndex));// определяем символы конца строки
....................
................
.............
Ошибка:
06-07 18:41:54.604 14367-14456/com.example.my9 W/dalvikvm: threadid=12: thread exiting with uncaught exception (group=0x40dbe1f8)
06-07 18:41:54.604 14367-14456/com.example.my9 E/AndroidRuntime: FATAL EXCEPTION: Thread-5808
java.lang.NullPointerException
at com.example.my9.MainActivity$ConnectedThred2.run(MainActivity.java:1252)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2016, 16:40     WiFi, создание сокета в новом потоке
Посмотрите здесь:

ServerSocket в новом потоке - Программирование Android
По нажатию на кнопку запускаю новый поток. в Потоке открывается порт и ждет подключения: public void onClick(View view) { // TODO...

Handlers в новом потоке - Программирование Android
Почему не могу создать handlers в новом потоке ? Thread streamThread = new Thread(new Runnable() { public void run() { ...

Работа с изображениями в новом потоке - Программирование Android
Доброго времени суток! У меня возникла проблемка с потоками, а собственно, не выходит работать с изображениями в новом потоке. На...

Post,Get запрос в новом потоке - Программирование Android
Как переписать код чтобы было возможным отправить запрос на android 4.0.3? Возникает ошибка, читал что это от того что в главном потоке...

Создание view элементов в отдельном потоке - Программирование Android
Беру данные из интернета и делаю блоки. Если информации довольно много то при запуске активности(где создаются эти блоки) сначала...

Вычитывание байтов из InputStream сокета Bluetooth - Программирование Android
Создан блютузный сокет, приконнекчен к девайсу, запущен следующий поток: private class ReceiveDataThread extends Thread { ...

Android.os.NetworkOnMainThreadException при создании сокета - Программирование Android
Доброго времени суток товарищи. Возникла очень серьезная проблемма. Решил я сделать сетевой чат. Ну все вроде норм. Сервер и клиент...

Read(). Как правильно прочитать из сокета? - Программирование Android
День добрый! Не могу понять почему read() пролетает не дождавшись каких либо данных .Код ниже ... if (сокет есть...

Service в новом процессе - Программирование Android
Мне нужно запускать сервис в новом процессе, чтобы он не перезапускался после завершения Activity. Сделал так: <service ...

Открыть картинку в новом активити - Программирование Android
Приветствую уважаемые разрабы. Сразу извиняюсь если написал не в той ветке. Задача такая : есть 2 бланка активити : на первом несколько...

Ошибки в новом проекте (Eclipse) - Программирование Android
Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCompat.Light'. При создании проекта код...

Обработчики событий в новом(своем) class - Программирование Android
Ребят, день добрый! Столкнулся с такой проблемой, как навязать события view элементам в своем class, т.е : Например создаю свой Class A ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru