Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
1 / 1 / 0
Регистрация: 28.01.2017
Сообщений: 3

Клиент не соединяется с сервером при запуске из Android Studio

28.01.2017, 02:10. Показов 2009. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, форумчане. Целые сутки убил на решение вопроса, ответа так и не нашел, решил создать собственную тему.

Пытаюсь написать клиент-серверное приложение, сервер и клиент на Java, написаны и протестированы в IDE Eclipce. Теперь клиентскую часть пытаюсь перенести в Android Studio, т.к. клиент предполагается использовать с мобильного устройства. Столкнулся с следующей проблемой: клиент ни в какую не хочет видеть локальный сервер. Код выполняется без ошибок, но никакого подключения не происходит. Сервер запускаю из командной строки, он висит в режиме ожидания подключения клиента. С Эклипсом проблем не возникает - тот же код спокойно подключается к серверу, происходит обмен данными. В чем может быть проблема?

Прикладываю исходники.

Сервер
Кликните здесь для просмотра всего текста

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
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
 
import javax.swing.JFrame;
 
public class Server extends JFrame {
    
    public static void main(String[] arg) {
        
        int port = 7777; //случайный порт, любой от 1025 - 65535 (+ надо будет проверить зарезервированные)
        
        try {
            ServerSocket ss = new ServerSocket(port); //создаем сокет и привязываем к порту
            System.out.println("Ожидаем подключение клиента...");
            
            Socket s = ss.accept(); // заставляем сервер ждать подключений, выводим сообщение, когда кто-то подключился
            System.out.println("Клиент подключен");
            
            //if (s.isConnected()){
            //  System.out.println("Клиент онлайн");
            //  } else { System.out.println("Клиент оффлайн"); }
            
            // создаем входной и выходной поток сокета, можем получать/отсылать данные клиенту
            InputStream sin = s.getInputStream();       
            OutputStream sout = s.getOutputStream();    
            
            DataInputStream in = new DataInputStream(sin);
            DataOutputStream out = new DataOutputStream(sout); // Конвертируем потоки в другой тип, чтоб легче обрабатывать текстовые сообщения
            
            String line = null;
            
                while (true) 
                    {
                    line = in.readUTF(); // ожидаем, пока клиент пришлет строку текста
                    System.out.println("Клиент прислал сообщение: " + line);
                    out.writeUTF(line); // отсылаем клиенту обратно ту самую строку текста
                    System.out.println("Я отправляю обратно: " + line);
                    out.flush(); // заставляем поток закончить передачу данных
                    
                    System.out.println("Ждем следующее сообщение...");
                    }
            } catch (Exception e) { e.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
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
 
public class Client {
 
    public static void main(String[] ar) {
        
        int serverPort = 7777; // порт, к которому привязывается сервер
        String address = "127.0.0.1"; // IP-адрес
                                              
        try {
            InetAddress ipAddress = InetAddress.getByName(address); // создаем объект, который отображает вышеописанный IP-адрес
            System.out.println("Используется IP " + address + " и порт " + serverPort);
            Socket socket = new Socket(ipAddress, serverPort); // создаем сокет, используя IP-адрес и порт сервера
            System.out.println("Сокет успешно создан");
            
            // Берем входной и выходной потоки сокета, теперь можем получать и отсылать данные клиентом 
            InputStream sin = socket.getInputStream();
            OutputStream sout = socket.getOutputStream();
            
            // Конвертируем потоки в другой тип, чтоб легче обрабатывать текстовые сообщения
            DataInputStream in = new DataInputStream(sin);
            DataOutputStream out = new DataOutputStream(sout);
            
            // Создаем поток для чтения с клавиатуры
            BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in));
            String line = null;
            System.out.println("Введите сообщение и нажмите клавишу Enter");
            
            while (true) {
                line = keyboard.readLine(); // ждем, пока пользователь введет что-то и нажмет кнопку Enter.
                System.out.println("Отправка сообщения на сервер...");
                out.writeUTF(line); // отсылаем введенную строку текста серверу.
                out.flush(); // заставляем поток закончить передачу данных.
                line = in.readUTF(); // ждем пока сервер отошлет строку текста.
                System.out.println("Ответ сервера: " + line);
                        }
            } catch (Exception e) {e.printStackTrace();}
    }
}


Манифест
Кликните здесь для просмотра всего текста

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
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="pk.inc.ru.client_pk">
 
    <uses-permission android:name="android.permission.INTERNET" />\
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 
    <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>
    </application>
 
</manifest>


Благодарю за анализ.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.01.2017, 02:10
Ответы с готовыми решениями:

Ошибки при запуске Android Studio
Ещё не написано ни одной строчки кода, а Android Studio выдаёт ошибки: после закачки и доустановки недостающих и устаревших частей пакета...

Ошибка при запуске Android Studio
При запуске программы будь, то это пустой проект или шаблон , одно и то же . Уже и удалял все и переустанавливал все

Ошибка при запуске Android Studio
Скачал Android Studio с официального сайта. Установил, но при запуске выдает ошибку(см. вложение). Изначально он ругался на JAVA_HOME....

1
 Аватар для OlegJV
104 / 103 / 29
Регистрация: 13.03.2016
Сообщений: 474
28.01.2017, 06:33
UIIIIIIIII... Повторение - мать заикания. И что это за main такой? Это же Андроид
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.01.2017, 06:33
Помогаю со студенческими работами здесь

Ошибка при запуске проекта в Android Studio
Здравствуйте. На просторах интернета нашел исходник проекта и при запуске выдает ошибку. Может кто встречался с такой? В Android Studio...

Ошибка при запуске эмулятора в Android Studio
Пробовал создавать разные виртуальные девайсы в AVD. Но, при запуске всегда выдает ошибку и не запускает: в чем может быть проблема?

Android studio, ошибка при запуске эмулятора
Не уверен в выборе раздела, прошу заранее прощения, не сталкивался ли кто с такой проблемой ? audio: Failed to create voice...

Не отображает элементы при запуске на эмуляторе. Android Studio
Подскажите, из-за чего может быть проблема Имеются две активности Empty и Navigation Drawer Activity Все стандартно На первой есть...

Вылезает синий экран при запуске в Android Studio
Помогите решить проблему!! При попытке запустить код в Android Studio вылезает синий экран с надписью &quot;На вашем ПК возникла...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера 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 с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru