Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
3 / 3 / 4
Регистрация: 03.03.2015
Сообщений: 51

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

05.06.2016, 23:54. Показов 1975. Ответов 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 и программа завершается...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.06.2016, 23:54
Ответы с готовыми решениями:

Самба клиент не коннектится к виндовому серверу
Имеется виндовый сервер с шарами, открытый для пользователя backup. Пароль - точно соответствует, т.к. логинились с РДП под этими данными....

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

Программа коннектится к серверу очень долго, выставить Timeout
В общем моя программа работает с прокси. прокси иногда залагивают и программа коннектится к серверу очень долго. Может час, может 10 минут....

24
 Аватар для YuraAAA
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
05.06.2016, 23:57
Анатолий228, а где отдельный поток для работы с сетью?
0
3 / 3 / 4
Регистрация: 03.03.2015
Сообщений: 51
06.06.2016, 00:36  [ТС]
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");
        }
    }
}
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
06.06.2016, 09:40
чем это адрес 10.0.2.2 - комп, эмулятор?
проверить телнетом на этот адрес и порт и посмотреть что будет
0
3 / 3 / 4
Регистрация: 03.03.2015
Сообщений: 51
06.06.2016, 15:41  [ТС]
Паблито, не понял вас...
Я не знаю, какой ip вбивать, откуда его брать.
0
3 / 3 / 4
Регистрация: 03.03.2015
Сообщений: 51
07.06.2016, 16:21  [ТС]
up.
0
91 / 86 / 12
Регистрация: 08.08.2013
Сообщений: 667
07.06.2016, 19:29
Анатолий228, win+r -> cmd -> enter -> ipconfig -> enter
1
3 / 3 / 4
Регистрация: 03.03.2015
Сообщений: 51
07.06.2016, 21:49  [ТС]
_Night_Scream_, да, и оттуда я брал ip, но подключаться все равно не хочет.
пикча

Проверил, клиент на этом же компьютере успешно подключается...
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
08.06.2016, 09:43
выключить firewall и проверить еще раз
0
3 / 3 / 4
Регистрация: 03.03.2015
Сообщений: 51
08.06.2016, 14:38  [ТС]
Паблито, не помогло...
пробовал всякие ip... 10.0.0.2, 127.0.0.1, 192.168.0.104...
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
08.06.2016, 14:51
какой ip адрес у компьютера, на котором запускается сервер чата?
0
3 / 3 / 4
Регистрация: 03.03.2015
Сообщений: 51
08.06.2016, 15:07  [ТС]
Паблито, 93.171.161.217
посмотрел на 2ip.ru, возможно, нужно было как-то иначе
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
08.06.2016, 15:09
если это все запускается в локальной сети то надо смотреть внутренний адрес
как его найти написали еще в сообщении #7
1
3 / 3 / 4
Регистрация: 03.03.2015
Сообщений: 51
08.06.2016, 15:13  [ТС]
Паблито, да, я брал IPv4-адрес локальной сети... Сервер все равно не видел
Коннект к серверу с этого же компа виден, с эмулятора/телефона не виден(
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
08.06.2016, 15:16
Цитата Сообщение от Паблито Посмотреть сообщение
какой ip адрес у компьютера, на котором запускается сервер чата?
дубль 2
0
3 / 3 / 4
Регистрация: 03.03.2015
Сообщений: 51
08.06.2016, 15:18  [ТС]
Паблито,
Цитата Сообщение от Анатолий228 Посмотреть сообщение
93.171.161.217
посмотрел на 2ip.ru, возможно, нужно было как-то иначе
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
08.06.2016, 15:22
Цитата Сообщение от Паблито Посмотреть сообщение
если это все запускается в локальной сети то надо смотреть внутренний адрес
еще раз
Цитата Сообщение от Анатолий228 Посмотреть сообщение
нужно было как-то иначе
да, нужно, повторяю еще раз - КАК смотреть написано в сообщении 7
0
3 / 3 / 4
Регистрация: 03.03.2015
Сообщений: 51
08.06.2016, 15:25  [ТС]
Паблито, хм, не понял сразу)
Тогда вот, IPv4-адрес : 192.168.0.104
Беспроводная локальная сеть
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
08.06.2016, 15:30
тогда надо видеть весь манифест
и желательно весь код ошибки, не одну строчку, а весь stacktrace
он отлично копируется прямо из студии из консоли
0
3 / 3 / 4
Регистрация: 03.03.2015
Сообщений: 51
08.06.2016, 15:35  [ТС]
Паблито,

манифест
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>
А ошибки нет, клиент вроде коннектится, но сервер не видит его...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.06.2016, 15:35
Помогаю со студенческими работами здесь

Сервер - клиент не коннектится
Хочу изучить сети, первое что хотелось бы реализовать - простейший онлайн чат. Взял первый попавшийся исходник, подлатал как мне удобно. ...

Клиент отказывается коннектиться к IP, и коннектится только к localhost
Имеются два приложения: клиент и сервер. Проблема в том, что клиент отказывается конектиться к моему IP, и конектится только к ...

Клиент/сервер: клиент посылает серверу слово; определить, является ли это слово палиндромом
Осуществить взаимодействие клиента и сервера на основе протокола TCP/IP. Функционирование клиента и сервера реализовать следующим образом:...

Клиент-серверное приложение. Сервер - ПК, клиент - телефон (Android)
Здравствуйте, решил для обучения написать программу для выключения ПК с телефона, используя компонент TIdTCPServer. Подскажите, как...

Клиент не подключаеться к серверу
здравствуйте. написал приложение клиент - сервер. на одном компе нормально работает вроде.... на когда пробую отсылать сообщения в сети...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru