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

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

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

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

27.12.2014, 11:54. Просмотров 404. Ответов 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");
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2014, 11:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Использование сокетов (Программирование Android):

Программирование сокетов - Программирование Android
Извиняюсь за глупые вопросы. Не могу понять где я напортачил. В общем месяц назад было интересно сделать сервер и клиент на java. Долго...

Ошибка сокетов: D/AndroidRuntime: Shutting down VM - Программирование Android
Пишу сокет-клиент. Вроде всё делаю правильно... tvOut.setText("Коннектимся..."); Log.d("my", "Коннектимся..."); try { ...

Клиент-серверная архитектура на основе сокетов - Программирование Android
Есть такой код клиента под андроид. Сервер написан на си++. Подключаю ноут и телефон в одну сеть. Сервер работает точто правильно, но...

Есть ли книга где хорошо описывается создание сокетов? - Программирование Android
Открываю тему о TCP\UDP сокетах и всему что помогает связать андроид с внешним миром. Есть ли книга где хорошо описывается создание...

Фреймворк для разработки GUI приложений. Возможность использования сокетов - Программирование
Уважаемые разработчики софтов для мобильных устройств! Подберите мне пожалуйста инструменты для быстрой разработки сетевого приложения с...

Повторное использование сокетов - C#
при попытке отправить второй раз текст на сервер выходит exception server class programm { public...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2014, 11:54
Привет! Вот еще темы с ответами:

Использование сокетов, сетевое программирование. - C++
Здравствуйте. Нужно сделать програмку, которая будет передавать другому компьютеру две переменных. Тоесть на обоих компьютерах запущена эта...

Использование сокетов в VCL приложениях, Borland c++ - C++
Здраствуйте. Проблема следующая: До этого писал программу на сокетах в борланде используя, видимо, Windows Sockets. Там в процессе...

Прием и отправка сообщений с использование сокетов - C#
Здравствуйте. Нашел в интернете образец кода сервера который оказался бы для меня весьма полезным. Проблема в том что я не могу понять в...

Использование сокетов для сервера с множеством клиентов - PHP Сети
Здравствуйте. Суть в том: есть веб-приложение (работает локально внутри заведения. Клиентов не больше 250, но, скорее всего,...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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