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

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

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

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

05.06.2016, 23:54. Просмотров 528. Ответов 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");
        }
    }
}
Паблито
2063 / 1805 / 562
Регистрация: 12.05.2014
Сообщений: 6,430
Завершенные тесты: 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_
57 / 69 / 7
Регистрация: 08.08.2013
Сообщений: 560
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, но подключаться все равно не хочет.
пикча

Проверил, клиент на этом же компьютере успешно подключается...
Паблито
2063 / 1805 / 562
Регистрация: 12.05.2014
Сообщений: 6,430
Завершенные тесты: 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...
Паблито
2063 / 1805 / 562
Регистрация: 12.05.2014
Сообщений: 6,430
Завершенные тесты: 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, возможно, нужно было как-то иначе
Паблито
2063 / 1805 / 562
Регистрация: 12.05.2014
Сообщений: 6,430
Завершенные тесты: 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-адрес локальной сети... Сервер все равно не видел
Коннект к серверу с этого же компа виден, с эмулятора/телефона не виден(
Паблито
2063 / 1805 / 562
Регистрация: 12.05.2014
Сообщений: 6,430
Завершенные тесты: 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, возможно, нужно было как-то иначе
Паблито
2063 / 1805 / 562
Регистрация: 12.05.2014
Сообщений: 6,430
Завершенные тесты: 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
Беспроводная локальная сеть
Паблито
2063 / 1805 / 562
Регистрация: 12.05.2014
Сообщений: 6,430
Завершенные тесты: 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 Клиент-Сервер подключение к серверу в сети Wi-Fi Android
Android Клиент-сервер приложение для android
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 не коннектится к Серверу пк
Ответ Создать тему
Опции темы

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