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

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

Войти
Регистрация
Восстановить пароль
 
qvazar
1 / 1 / 0
Регистрация: 08.12.2010
Сообщений: 37
#1

Не удается подключиться к телефону по сокетам - Программирование Android

11.06.2013, 14:05. Просмотров 479. Ответов 2
Метки нет (Все метки)

Есть приложение на android, в нем кроме главного потока есть поток, который работает с сетью, в нем я создаю сокет, задаю ему порт и ставлю на прослушку подключений методом accept().
Есть также клиент на c#, в котором я задаю ip и порт телефона и пытаюсь подключиться к телефону, но он выбрасывает мне исключение "подключение не установлено т.к конечный компьютер отверг запрос на подключение".
В связи с чем устройство на android может не давать подключиться к себе? В манифесте прописал разрешения INTERNET, ACCESS_WIFI_STATE и ACCESS_NETWORK_STATE.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2013, 14:05     Не удается подключиться к телефону по сокетам
Посмотрите здесь:
Android Не могу подключиться к телефону
Не удается подключиться к базе данных Android
Как воспроизвести фоновый звой звук при разговоре по телефону? Android
Подключиться к БД Android
Android Как подключиться к бд в приложении?
Как подключиться к Heroku Android
Android Не могу подключиться к удаленной БД
Android Не подключиться к скрипту на сервере
Android Подключиться к готовой базе данных
Подключиться к android устройству через интернет (3G\4G) Android
Как подключиться к MySQL БД через в андроид приложении? Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GiGaBiTe911
24 / 24 / 1
Регистрация: 04.02.2013
Сообщений: 132
Записей в блоге: 1
11.06.2013, 16:43     Не удается подключиться к телефону по сокетам #2
писал такую же "систему" все работает. и если меня не подводит память то запускать на прослушку нужно не методом accept(). если еще не решили проблему - могу посмотреть исходники.
прошу прощения но у меня система работала немножко иначе. телефон подключался к серверу на PC и слушал порт.
qvazar
1 / 1 / 0
Регистрация: 08.12.2010
Сообщений: 37
11.06.2013, 17:26  [ТС]     Не удается подключиться к телефону по сокетам #3
Часть кода клиента на c#:
C#
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
 class Connection
    {
        public Connection(String ip, String port)
        {
            Ip = IPAddress.Parse(ip);
            Port = Convert.ToInt32(port);
        }
 
        public IPAddress Ip
        {
            get;
            set;
        }
 
        public Int32 Port
        {
            get;
            set;
        }
 
        public Boolean ConnectionError;
 
        public Socket S;
 
        public void ConnectToServer()
        {
            IPEndPoint ipe = new IPEndPoint(Ip, Port);
            S = new Socket(ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
            try
            {
                S.Connect(ipe);
            }
            catch (SocketException e)
            {
            }
        }
В главном окне пользователь задает IP и порт телефона, создает экземпляр класса Connection и вызывает метод ConnectToServer, но срабатывает SocketException.
Код сервера на 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
private void networkOperations()
    {
        Thread networkThread = new Thread (null, doBackgroundThreadProcessing, "Network");
        networkThread.start();
    }
    
    private Runnable doBackgroundThreadProcessing = new Runnable() 
    {
        public void run() {
            backgroundThreadProcessing();
        }
    };
    
    private void backgroundThreadProcessing()
    {
        Socket s = null;
        ServerSocket ss = null;
        try {
            ss = new ServerSocket(8867);
        } catch (IOException e) {
            e.printStackTrace();
        }
        while(!Thread.currentThread().isInterrupted())
        {
            try {
                if (s == null)
                    s = ss.accept();
                BufferedReader input = new BufferedReader(new InputStreamReader(s.getInputStream()));
                String st = null;
                st = input.readLine();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
Метод networkOperations() вызывается в методе onCreate() в MainActivity.
Yandex
Объявления
11.06.2013, 17:26     Не удается подключиться к телефону по сокетам
Ответ Создать тему
Опции темы

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