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

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

Войти
Регистрация
Восстановить пароль
 
 
Анатолий228
2 / 2 / 1
Регистрация: 03.03.2015
Сообщений: 51
#1

Клиент Android не коннектится к Серверу пк - Программирование Android

05.06.2016, 23:54. Просмотров 610. Ответов 24
Метки нет (Все метки)

Клиент Android не коннектится к Серверу ПК.

Сервер:
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
import java.io.*;
import java.net.*;
 
public class Server {
 
    public static void main(String[] args) throws IOException {
        System.out.println("Welcome to Server side");
        BufferedReader in = null;
        PrintWriter    out= null;
 
        ServerSocket servers = null;
        Socket       fromclient = null;
        Socket       fromclient2 = null;
 
        // create server socket
        try {
            servers = new ServerSocket(4444);
        } catch (IOException e) {
            System.out.println("Couldn't listen to port 4444");
            System.exit(-1);
        }
 
        try {
            System.out.print("Waiting for a 1 client...");
            fromclient = servers.accept();
            System.out.println("Client connected");
            System.out.print("Waiting for a 2 client...");
            fromclient2 = servers.accept();
            System.out.println("Client connected");
        } catch (IOException e) {
            System.out.println("Can't accept");
            System.exit(-1);
        }
 
        in  = new BufferedReader(new
                InputStreamReader(fromclient.getInputStream()));
        out = new PrintWriter(fromclient2.getOutputStream(),true);
        String         input,output;
 
        System.out.println("Wait for messages");
        while ((input = in.readLine()) != null) {
            if (input.equalsIgnoreCase("exit")) break;
            out.println("S ::: "+input);
            System.out.println(input);
        }
        out.close();
        in.close();
        fromclient.close();
        servers.close();
    }
}
Клиент:
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
125
126
127
128
129
130
131
132
133
134
135
package vershiloandrey.clientandroid;
 
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
 
import com.google.android.gms.appindexing.Action;
import com.google.android.gms.appindexing.AppIndex;
import com.google.android.gms.common.api.GoogleApiClient;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
 
public class MainActivity extends AppCompatActivity implements Runnable{
 
    /**
     * ATTENTION: This was auto-generated to implement the App Indexing API.
     * See [url]https://g.co/AppIndexing/AndroidStudio[/url] for more information.
     */
    private GoogleApiClient client;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        setContentView(R.layout.activity_main);
 
        final Button[] buttonArray = {
                (Button) findViewById(R.id.button1),
                (Button) findViewById(R.id.button2),
                (Button) findViewById(R.id.button3),
                (Button) findViewById(R.id.button4),
                (Button) findViewById(R.id.button5),
                (Button) findViewById(R.id.button6),
                (Button) findViewById(R.id.button7)
        };
 
        int i = 0;
        final int ifinal = i;
        buttonArray[i].setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                buttonArray[ifinal].setText("o");
                try {
                    connecting();
                }catch(IOException e){
 
                }
            }
        });
 
        // ATTENTION: This was auto-generated to implement the App Indexing API.
        // See [url]https://g.co/AppIndexing/AndroidStudio[/url] for more information.
        client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
    }
 
    public void connecting() throws IOException {
 
        //System.out.println("Welcome to Client side");
        run();
    }
 
    @Override
    public void onStart() {
        super.onStart();
 
        // ATTENTION: This was auto-generated to implement the App Indexing API.
        // See [url]https://g.co/AppIndexing/AndroidStudio[/url] for more information.
        client.connect();
        Action viewAction = Action.newAction(
                Action.TYPE_VIEW, // TODO: choose an action type.
                "Main Page", // TODO: Define a title for the content shown.
                // TODO: If you have web page content that matches this app activity's content,
                // make sure this auto-generated web page URL is correct.
                // Otherwise, set the URL to null.
                Uri.parse("http://host/path"),
                // TODO: Make sure this auto-generated app URL is correct.
                Uri.parse("android-app://vershiloandrey.clientandroid/http/host/path")
        );
        AppIndex.AppIndexApi.start(client, viewAction);
    }
 
    @Override
    public void onStop() {
        super.onStop();
 
        // ATTENTION: This was auto-generated to implement the App Indexing API.
        // See [url]https://g.co/AppIndexing/AndroidStudio[/url] for more information.
        Action viewAction = Action.newAction(
                Action.TYPE_VIEW, // TODO: choose an action type.
                "Main Page", // TODO: Define a title for the content shown.
                // TODO: If you have web page content that matches this app activity's content,
                // make sure this auto-generated web page URL is correct.
                // Otherwise, set the URL to null.
                Uri.parse("http://host/path"),
                // TODO: Make sure this auto-generated app URL is correct.
                Uri.parse("android-app://vershiloandrey.clientandroid/http/host/path")
        );
        AppIndex.AppIndexApi.end(client, viewAction);
        client.disconnect();
    }
 
    public void run(){
        try {
            Socket fromserver = null;
            fromserver = new Socket("192.168.0.104", 4444);
            BufferedReader in = new BufferedReader(new InputStreamReader(fromserver.getInputStream()));
            PrintWriter out = new PrintWriter(fromserver.getOutputStream(), true);
            BufferedReader inu;
            inu = new BufferedReader(new InputStreamReader(System.in));
 
            String fuser, fserver;
 
            while ((fuser = inu.readLine()) != null) {
                out.println(fuser);
                fserver = in.readLine();
                System.out.println(fserver);
                if (fuser.equalsIgnoreCase("close")) break;
                if (fuser.equalsIgnoreCase("exit")) break;
            }
 
            out.close();
            in.close();
            inu.close();
            fromserver.close();
        }catch(IOException e){
            System.out.println("rtr");
        }
    }
}
В AndroidManifest вписал только эту строчку
Java
1
<uses-permission  android:name = "android.permission.INTERNET"  />
У меня не получается приконнектится к серверу с клиента. Похоже, дело в адресе... Но после строки
Java
1
  fromserver = new Socket("192.168.0.104", 4444);
fromsetver = null и программа завершается...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2016, 23:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Клиент Android не коннектится к Серверу пк (Программирование Android):

Android Клиент-Сервер подключение к серверу в сети Wi-Fi - Программирование Android
Доброго времени суток, уважаемые форумчане! Ничего не смог найти по данному вопросу или искал не так или не там, направьте в нужном...

Первое android приложение с доступом к серверу - Программирование Android
Есть сервер на php на котором написано: Привет Мир! Как создать приложение android чтобы он обратился к серверу и вывел это?

Android разработка клиент-сервера - Программирование Android
Всем привет! Встал вопрос создания клиент-сервера, но к сожалению об обращении клиента к серверу ничего не знаю. Неплохо знаю язык Java и...

Клиент-сервер для android - Программирование Android
Здравствуйте. Мне нужно сделать следующее:сервер с базой данных и клиенты на пк и android с помощью которых будет выполняться работа с бд....

Клиент-серверное приложение android - Программирование Android
Ребят, такая задача: Необходимо, чтобы пользователь1 мог отправлять сообщение со своего приложения на телефоне/компьютере на другое...

Клиент-сервер Linux-Android - Программирование Android
Передо мной стоит задача - написать простенький клиент сервер. Сервер на Debian, клиент Android 4.2.2. Вопрос собссно какой - подсказать в...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Анатолий228
2 / 2 / 1
Регистрация: 03.03.2015
Сообщений: 51
08.06.2016, 15:18  [ТС] #16
Паблито,
Цитата Сообщение от Анатолий228 Посмотреть сообщение
93.171.161.217
посмотрел на 2ip.ru, возможно, нужно было как-то иначе
Pablito
2471 / 1916 / 595
Регистрация: 12.05.2014
Сообщений: 6,741
Завершенные тесты: 1
08.06.2016, 15:22 #17
Цитата Сообщение от Паблито Посмотреть сообщение
если это все запускается в локальной сети то надо смотреть внутренний адрес
еще раз
Цитата Сообщение от Анатолий228 Посмотреть сообщение
нужно было как-то иначе
да, нужно, повторяю еще раз - КАК смотреть написано в сообщении 7
Анатолий228
2 / 2 / 1
Регистрация: 03.03.2015
Сообщений: 51
08.06.2016, 15:25  [ТС] #18
Паблито, хм, не понял сразу)
Тогда вот, IPv4-адрес : 192.168.0.104
Беспроводная локальная сеть
Pablito
2471 / 1916 / 595
Регистрация: 12.05.2014
Сообщений: 6,741
Завершенные тесты: 1
08.06.2016, 15:30 #19
тогда надо видеть весь манифест
и желательно весь код ошибки, не одну строчку, а весь stacktrace
он отлично копируется прямо из студии из консоли
Анатолий228
2 / 2 / 1
Регистрация: 03.03.2015
Сообщений: 51
08.06.2016, 15:35  [ТС] #20
Паблито,

манифест
XML
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
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="vershiloandrey.clientandroid" >
 
    <uses-permission  android:name = "android.permission."  />
    <uses-permission  android:name = "android.permission.ACCESS_FINE_LOCATION"  />
    <uses-permission  android:name = "android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"  />
    <uses-permission  android:name = "android.permission.ACCESS_COARSE_LOCATION"  />
    <uses-permission  android:name = "com.example.towntour.permission.MAPS_RECEIVE"  />
    <uses-permission  android:name = "android.permission.ACCESS_NETWORK_STATE"  />
    <uses-permission  android:name = "android.permission.CALL_PHONE"  />
    <uses-permission  android:name = "android.permission.READ_PHONE_STATE"  />
    <uses-permission  android:name = "com.google.android.providers.gsf.permission.READ_GSERVICES"  />
 
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme" >
        <activity android:name=".MainActivity" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity><!-- ATTENTION: This was auto-generated to add Google Play services to your project for
     App Indexing.  See [url]https://g.co/AppIndexing/AndroidStudio[/url] for more information. -->
        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />
    </application>
 
</manifest>
А ошибки нет, клиент вроде коннектится, но сервер не видит его...
Pablito
2471 / 1916 / 595
Регистрация: 12.05.2014
Сообщений: 6,741
Завершенные тесты: 1
08.06.2016, 15:40 #21
Цитата Сообщение от Анатолий228 Посмотреть сообщение
клиент вроде коннектится
а отчего такой вывод?
vxg
Модератор
3156 / 1958 / 218
Регистрация: 13.01.2012
Сообщений: 7,488
08.06.2016, 15:44 #22
Анатолий228, что то в этом манифесте нет строки которую вы говорили что вписали
XML
1
<uses-permission android:name="android.permission.INTERNET"/>
Анатолий228
2 / 2 / 1
Регистрация: 03.03.2015
Сообщений: 51
08.06.2016, 15:56  [ТС] #23
Паблито, ну были бы ошибки, наверн

Добавлено через 1 минуту
vxg, где-то вычитал, что это
XML
1
<uses-permission android:name="android.permission."/>
включает в себя и это
XML
1
<uses-permission android:name="android.permission.INTERNET"/>
p.s. тестил и так и так
vxg
Модератор
3156 / 1958 / 218
Регистрация: 13.01.2012
Сообщений: 7,488
08.06.2016, 15:59 #24
Анатолий228, хз хз.. вы видите сервером что клиент подключается? видите на клиенте что коннект прошел?
Анатолий228
2 / 2 / 1
Регистрация: 03.03.2015
Сообщений: 51
08.06.2016, 16:01  [ТС] #25
Таки удалось коннектнуться! Спасибо большое, что помогали)

Дело было в этой строчке
XML
1
<uses-permission android:name="android.permission.INTERNET"/>
ip указал от локальной сети)

ВСе как-то слишком банально...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2016, 16:01
Привет! Вот еще темы с ответами:

Клиент-серверное приложение android - Программирование Android
Каким образом можно создать приложение для передачи данных через интернет? Одно устройство выступает в роли сервера, а второе - клиент.

Реализация Клиент(Телефон) - Сервер(ПК) на Android - Программирование Android
Здравствуйте. Интересует информация по теме: клиент-сервер на Андройд. Для начала, хотелось бы &quot;подружить телефон и ПК&quot;, тем самым...

Перенос кода клиент/сервера на Android - Программирование Android
Здравствуйте =) Начал изучать андроид и возникла такая проблема, а именно перенос Java кода в код приложения У меня есть работающий код...

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.06.2016, 16:01
Ответ Создать тему
Опции темы

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