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

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

Войти
Регистрация
Восстановить пароль
 
Neptyn
16 / 16 / 3
Регистрация: 23.09.2014
Сообщений: 124
#1

Использование сокетов - Android

27.12.2014, 11:54. Просмотров 379. Ответов 0
Метки нет (Все метки)

Добрый день!
Здесь нашел пример, сделал приложение клиента(немного переработал, так как чистый код из примера не запускалса).
Также сделал приложение сервера ничего не меняя но оно тоже не запускаетться.
Помогите, пожайлуста, найти ошибку или сделать сервер на PC.
Вот клиент:
Кликните здесь для просмотра всего текста
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
package com.example.client3;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity 
{
private Socket socket;
private static final int SERVERPORT = 6000;
private static final String SERVER_IP = "127.0.0.1";
EditText et;
Button Send_button, Conect_button;
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    et = (EditText) findViewById(R.id.editText1);
    Send_button = (Button) findViewById(R.id.Sen);
    Conect_button = (Button) findViewById(R.id.Con);
    }
    public void onClick(View v) 
    {
        switch (v.getId())
        {
        case R.id.Con: 
                        try {
                        String str = et.getText().toString();
                        PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
                        out.println(str);
                        }
                        catch (UnknownHostException e) 
                        {
                            e.printStackTrace();
                        } 
                        catch (IOException e) 
                        {
                            e.printStackTrace();
                        } 
                        catch (Exception e) 
                        {
                            e.printStackTrace();
                        }
                        break;
        case R.id.Sen:
            new Thread(new ClientThread()).start();
            break;
        }
    }
    class ClientThread implements Runnable 
    {
        @Override
        public void run() 
        {
            try 
            {
            InetAddress serverAddr = InetAddress.getByName(SERVER_IP);
            socket = new Socket(serverAddr, SERVERPORT);
            } 
            catch (UnknownHostException e1) 
            {
                e1.printStackTrace();
            } catch (IOException e1) 
            {
                e1.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
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
package ua.example.server;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
 
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.widget.TextView;
 
public class Server extends Activity {
 
    private ServerSocket serverSocket;
 
    Handler updateConversationHandler;
 
    Thread serverThread = null;
 
    private TextView text;
 
    public static final int SERVERPORT = 6000;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        text = (TextView) findViewById(R.id.text2);
 
        updateConversationHandler = new Handler(); 
 
        this.serverThread = new Thread(new ServerThread());
        this.serverThread.start();
 
    }
 
    @Override
    protected void onStop() {
        super.onStop();
        try {
            serverSocket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
 
    class ServerThread implements Runnable {
 
        public void run() {
            Socket socket = null;
            try {
                serverSocket = new ServerSocket(SERVERPORT);
            } catch (IOException e) {
                e.printStackTrace();
            }
            while (!Thread.currentThread().isInterrupted()) {
 
                try {
 
                    socket = serverSocket.accept();
 
                    CommunicationThread commThread = new CommunicationThread(socket);
                    new Thread(commThread).start();
 
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
 
    class CommunicationThread implements Runnable {
 
        private Socket clientSocket;
 
        private BufferedReader input;
 
        public CommunicationThread(Socket clientSocket) {
 
            this.clientSocket = clientSocket;
 
            try {
 
                this.input = new BufferedReader(new InputStreamReader(this.clientSocket.getInputStream()));
 
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
 
        public void run() {
 
            while (!Thread.currentThread().isInterrupted()) {
 
                try {
 
                    String read = input.readLine();
 
                    updateConversationHandler.post(new updateUIThread(read));
 
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
 
    }
 
    class updateUIThread implements Runnable {
        private String msg;
 
        public updateUIThread(String str) {
            this.msg = str;
        }
 
        @Override
        public void run() {
            text.setText(text.getText().toString()+"Client Says: "+ msg + "\n");
        }
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2014, 11:54     Использование сокетов
Посмотрите здесь:

Android Использование Сервисов
Клиент-серверная архитектура на основе сокетов Android
Android Ошибка сокетов: D/AndroidRuntime: Shutting down VM
Использование ImageView Android
Есть ли книга где хорошо описывается создание сокетов? Android
Использование TabHost Android
Android Использование HttpsURLConnection
Использование Authenticator Android
использование thread Android
Использование HttpURLConnection Android
Программирование сокетов Android
Android Использование Loader

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

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

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