Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
16 / 16 / 10
Регистрация: 23.09.2014
Сообщений: 136
1

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

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

Author24 — интернет-сервис помощи студентам
Добрый день!
Здесь нашел пример, сделал приложение клиента(немного переработал, так как чистый код из примера не запускалса).
Также сделал приложение сервера ничего не меняя но оно тоже не запускаетться.
Помогите, пожайлуста, найти ошибку или сделать сервер на 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.12.2014, 11:54
Ответы с готовыми решениями:

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

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

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

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

0
27.12.2014, 11:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.12.2014, 11:54
Помогаю со студенческими работами здесь

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

Повторное использование сокетов
при попытке отправить второй раз текст на сервер выходит exception server class...

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

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


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru