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

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

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

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

05.06.2016, 23:54. Просмотров 560. Ответов 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 и программа завершается...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
1565 / 1307 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
05.06.2016, 23:57     Клиент Android не коннектится к Серверу пк #2
Анатолий228, а где отдельный поток для работы с сетью?
Анатолий228
2 / 2 / 1
Регистрация: 03.03.2015
Сообщений: 51
06.06.2016, 00:36  [ТС]     Клиент Android не коннектится к Серверу пк #3
YuraAAA, скинул немного не тот вариант. Вот.

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
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{
 
    /**
     * 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");
 
                    Connected connected = new Connected();
                    Thread thread = new Thread(connected);
                    thread.start();
            }
        });
 
        // 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();
    }
 
    @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();
    }
}
 
class Connected implements Runnable{
    public void run(){
        try {
            Socket fromserver = null;
            fromserver = new Socket("10.0.2.2", 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");
        }
    }
}
Pablito
2403 / 1848 / 579
Регистрация: 12.05.2014
Сообщений: 6,577
Завершенные тесты: 1
06.06.2016, 09:40     Клиент Android не коннектится к Серверу пк #4
чем это адрес 10.0.2.2 - комп, эмулятор?
проверить телнетом на этот адрес и порт и посмотреть что будет
Анатолий228
2 / 2 / 1
Регистрация: 03.03.2015
Сообщений: 51
06.06.2016, 15:41  [ТС]     Клиент Android не коннектится к Серверу пк #5
Паблито, не понял вас...
Я не знаю, какой ip вбивать, откуда его брать.
Анатолий228
2 / 2 / 1
Регистрация: 03.03.2015
Сообщений: 51
07.06.2016, 16:21  [ТС]     Клиент Android не коннектится к Серверу пк #6
up.
_Night_Scream_
75 / 74 / 8
Регистрация: 08.08.2013
Сообщений: 581
07.06.2016, 19:29     Клиент Android не коннектится к Серверу пк #7
Анатолий228, win+r -> cmd -> enter -> ipconfig -> enter
Анатолий228
2 / 2 / 1
Регистрация: 03.03.2015
Сообщений: 51
07.06.2016, 21:49  [ТС]     Клиент Android не коннектится к Серверу пк #8
_Night_Scream_, да, и оттуда я брал ip, но подключаться все равно не хочет.
пикча

Проверил, клиент на этом же компьютере успешно подключается...
Pablito
2403 / 1848 / 579
Регистрация: 12.05.2014
Сообщений: 6,577
Завершенные тесты: 1
08.06.2016, 09:43     Клиент Android не коннектится к Серверу пк #9
выключить firewall и проверить еще раз
Анатолий228
2 / 2 / 1
Регистрация: 03.03.2015
Сообщений: 51
08.06.2016, 14:38  [ТС]     Клиент Android не коннектится к Серверу пк #10
Паблито, не помогло...
пробовал всякие ip... 10.0.0.2, 127.0.0.1, 192.168.0.104...
Pablito
2403 / 1848 / 579
Регистрация: 12.05.2014
Сообщений: 6,577
Завершенные тесты: 1
08.06.2016, 14:51     Клиент Android не коннектится к Серверу пк #11
какой ip адрес у компьютера, на котором запускается сервер чата?
Анатолий228
2 / 2 / 1
Регистрация: 03.03.2015
Сообщений: 51
08.06.2016, 15:07  [ТС]     Клиент Android не коннектится к Серверу пк #12
Паблито, 93.171.161.217
посмотрел на 2ip.ru, возможно, нужно было как-то иначе
Pablito
2403 / 1848 / 579
Регистрация: 12.05.2014
Сообщений: 6,577
Завершенные тесты: 1
08.06.2016, 15:09     Клиент Android не коннектится к Серверу пк #13
если это все запускается в локальной сети то надо смотреть внутренний адрес
как его найти написали еще в сообщении #7
Анатолий228
2 / 2 / 1
Регистрация: 03.03.2015
Сообщений: 51
08.06.2016, 15:13  [ТС]     Клиент Android не коннектится к Серверу пк #14
Паблито, да, я брал IPv4-адрес локальной сети... Сервер все равно не видел
Коннект к серверу с этого же компа виден, с эмулятора/телефона не виден(
Pablito
2403 / 1848 / 579
Регистрация: 12.05.2014
Сообщений: 6,577
Завершенные тесты: 1
08.06.2016, 15:16     Клиент Android не коннектится к Серверу пк #15
Цитата Сообщение от Паблито Посмотреть сообщение
какой ip адрес у компьютера, на котором запускается сервер чата?
дубль 2
Анатолий228
2 / 2 / 1
Регистрация: 03.03.2015
Сообщений: 51
08.06.2016, 15:18  [ТС]     Клиент Android не коннектится к Серверу пк #16
Паблито,
Цитата Сообщение от Анатолий228 Посмотреть сообщение
93.171.161.217
посмотрел на 2ip.ru, возможно, нужно было как-то иначе
Pablito
2403 / 1848 / 579
Регистрация: 12.05.2014
Сообщений: 6,577
Завершенные тесты: 1
08.06.2016, 15:22     Клиент Android не коннектится к Серверу пк #17
Цитата Сообщение от Паблито Посмотреть сообщение
если это все запускается в локальной сети то надо смотреть внутренний адрес
еще раз
Цитата Сообщение от Анатолий228 Посмотреть сообщение
нужно было как-то иначе
да, нужно, повторяю еще раз - КАК смотреть написано в сообщении 7
Анатолий228
2 / 2 / 1
Регистрация: 03.03.2015
Сообщений: 51
08.06.2016, 15:25  [ТС]     Клиент Android не коннектится к Серверу пк #18
Паблито, хм, не понял сразу)
Тогда вот, IPv4-адрес : 192.168.0.104
Беспроводная локальная сеть
Pablito
2403 / 1848 / 579
Регистрация: 12.05.2014
Сообщений: 6,577
Завершенные тесты: 1
08.06.2016, 15:30     Клиент Android не коннектится к Серверу пк #19
тогда надо видеть весь манифест
и желательно весь код ошибки, не одну строчку, а весь stacktrace
он отлично копируется прямо из студии из консоли
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2016, 15:35     Клиент Android не коннектится к Серверу пк
Еще ссылки по теме:
Android Клиент-сервер приложение для android
Клиент на Android не получает данные с сервера Android
Android Клиент -android, сервер -java app
Android Реализация Клиент(Телефон) - Сервер(ПК) на Android
Android Перенос кода клиент/сервера на Android

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

Или воспользуйтесь поиском по форуму:
Анатолий228
2 / 2 / 1
Регистрация: 03.03.2015
Сообщений: 51
08.06.2016, 15:35  [ТС]     Клиент Android не коннектится к Серверу пк #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>
А ошибки нет, клиент вроде коннектится, но сервер не видит его...
Yandex
Объявления
08.06.2016, 15:35     Клиент Android не коннектится к Серверу пк
Ответ Создать тему
Опции темы

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