Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
DrSMERTb
60 / 36 / 10
Регистрация: 12.11.2010
Сообщений: 820
#1

TCP Socket Client

20.02.2016, 14:18. Просмотров 913. Ответов 4
Метки нет (Все метки)

Всем доброго времени суток. Пытаюсь открыть сокет между Android Client и сервером под виндой (когда то написал на билде, использую в качестве тестового всегда, раньше всегда работал, так что пологаю что проблема не в нём. Брандмауэры потушены на обеих машинах.)
Но изночально он мне выдавал ошибку :
Java
1
socket failed eacces permission denied
После того как добавил в манифест
Java
1
2
3
4
5
6
7
 <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Ошибка появляется, но проблема в том что она не содержит текста.
Вот код самой проги:
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
import android.content.Context;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.telephony.TelephonyManager;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;
 
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
 
public class MainActivity extends AppCompatActivity {
private ImageView Image;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        try {
            SocketConnection(" ",getDevice_id());
 
        }
        catch (Exception s)
        {}
 
 
 
    }
 
    public void onTestButtonClick(View view)
    {
        // выводим сообщение
        try {
            SocketConnection("HI","HI");
        }
        catch (Exception s)
            {
                Toast.makeText(this, s.getMessage(), Toast.LENGTH_SHORT).show();
            }
 
        Toast.makeText(this, "Коннехт!", Toast.LENGTH_SHORT).show();
    }
 
 
 
    public String getDevice_id() {//Получение imei телефона
        String device_id;
        TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
        device_id= tm.getDeviceId(); // здесь ошыбк
        return  device_id;
    }
    public static void SocketConnection(String FileName, String IMEI) throws IOException {
     Socket soc= new Socket("192.168.10.3",5150);
        InputStream sin = soc.getInputStream();
        OutputStream sout = soc.getOutputStream();
        DataInputStream in = new DataInputStream(sin);
        DataOutputStream out = new DataOutputStream(sout);
        out.writeUTF(IMEI);
        out.flush();
        sin.close();
        sout.close();
        in.close();
        out.close();
        soc.close();// заставляем поток закончить передачу данных.
    }
}
Так ну и в общем 192.168.10.3 - физический сервак, и доступ к нему из вафли к которой подключём телефон есть, т.к. ES Проводник спокойненько цепляется к шаре на нём. Что ни так делаю? Ещё что то в манифест добавить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.02.2016, 14:18
Ответы с готовыми решениями:

Socket Android Client and Java Socket Server
Доброго времени суток.Пытаюсь сделать простое клиент-серверное приложение....

Socket Server, Client
Доброго времени суток. Решил разобраться с сокетами. Но почему-то сообщения не...

Android, client-server
Здравствуйте, раньше писал, что делаю приложение на диплом, что-то похожие на...

Android client <-Wi FI-> PC server
Всем привет. Очень хочу реализовать такую штуку. Значит надо отправлять хотяб...

HTTP Client для Android
Доброго времени суток друзья. Столкнулся с такой проблемой. Нужно написать...

4
Pablito
2708 / 2155 / 731
Регистрация: 12.05.2014
Сообщений: 7,521
Завершенные тесты: 1
20.02.2016, 14:26 #2
Лучший ответ Сообщение было отмечено DrSMERTb как решение

Решение

Цитата Сообщение от DrSMERTb Посмотреть сообщение
пологаю
Цитата Сообщение от DrSMERTb Посмотреть сообщение
изночально
это печально

ошибки не бывают пустыми, их желательно копипастить целиком сюда, народ разберется

и по теме - все операции с сетью должны выполняться в отдельном потоке
то есть в методе SocketConnection надо все выносить или в Thread или в какой-нибудь AsyncTask
2
DrSMERTb
60 / 36 / 10
Регистрация: 12.11.2010
Сообщений: 820
20.02.2016, 14:31  [ТС] #3
Ну на счёт пустой... На картинке 1- сигналит, что была ошибка
2-при любом раскладе выводит "коннект".
0
Миниатюры
TCP Socket Client  
Pablito
2708 / 2155 / 731
Регистрация: 12.05.2014
Сообщений: 7,521
Завершенные тесты: 1
20.02.2016, 14:33 #4
Лучший ответ Сообщение было отмечено DrSMERTb как решение

Решение

логи надо смотреть, но это на будущее, потому что выше я дал ответ почему не работает
и об этом точно написано в логах (LogCat), инфа 146%
1
DrSMERTb
60 / 36 / 10
Регистрация: 12.11.2010
Сообщений: 820
20.02.2016, 14:44  [ТС] #5
Паблито, ах тыж хитрюга)))
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 public void onTestButtonClick(View view)
    {
        Thread myThread = new Thread( // создаём новый поток
                new Runnable() { // описываем объект Runnable в конструкторе
                    public void run() {
                        try {
                            System.out.println("GO");
                            SocketConnection("123", "123"); // вызываем метод воспроизведения
                            System.out.println("Final");
                        }
                      catch (Exception e) {
                          System.out.println(e.getMessage());
                      }
 
                    }
                }
        );
        myThread.start();
        Toast.makeText(this, "Ушёл на выполнение!", Toast.LENGTH_SHORT).show();
    }
Всё заработало
Спс)
0
20.02.2016, 14:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.02.2016, 14:44

Client(android) - Server (PC) - Delphi
Здравствуйте. Подскажите как можно реализовать Client(android) - Server (PC) -...

SocketServer, Client. Получение ответа от сервера
Уже устал, не пойму где ошибка... Клиент: client = null; ...

Nv-websocket-client -> The scheme part is empty
Здравствуйте! Использую библиотеку nv-websocket-client от TakahikoKawasaki. При...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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