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

Проверка Socket на наличие соединения - Android

Восстановить пароль Регистрация
Другие темы раздела
Android Студия не видит телефон http://www.cyberforum.ru/android-dev/thread1850236.html
Есть устройство LG L90 Dual D410 и при подключение его студия не видит это устройсто для отладки(Его нет в списке доступных устройств). Как быть? Как поставить драйвера на него и где взять?
Android Ошибка при импорте проекта из ADT в AS Перебрасываю свои проекты в АС из эклипса. Один проект выдает странную ошибку в строках где указываются ресурсы, вообще их в АС не видит хотя они присутствуют и в эклипсе этот проект работает без ошибок. setContentView(R.layout.main); Пишет Cannot resolve symbol 'R' Другие проекты нормально импортировались http://www.cyberforum.ru/android-dev/thread1850217.html
Не работает сравнение String с пустой строкой Android
Добрый день. Возникла проблема использования оператора if при нажатии кнопки. btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { if (ip == "" ) {
Android Наложение разрешений
Доброе утро, давно хотел спросить, может кто в курсе. С выходом 6.0 появилась необходимость запрашивать некоторые разрешения у пользователей. Так вот один пользователь пожаловался, что не может использовать в полной мере приложение, потому что разрешения в настройках сами отключаются, а при включении выходит алерт, что возникли наложения, поэтому получить разрешения невозможно. Пошарился по...
Android Изменить ID приложения http://www.cyberforum.ru/android-dev/thread1849969.html
Как изменить ID приложения? Менял его через настройки, при компиляции выдаёт ошибку. Где нужно его изменить, чтобы проект воспринялся Гугл-Плеем, как новое приложение?
Android Определить первый запуск Activity Ребята помогите. Как определить первый раз запускается Activity или нет. У меня задание: при первом запуске активити выполняется один код, а когда юзер выйдет из него в главное меню и запустит снова - другая часть кода. Как и с помощью чего такую проверку аctivity можно сделать? подробнее

Показать сообщение отдельно
zoleg
13 / 13 / 1
Регистрация: 10.01.2012
Сообщений: 103
15.11.2016, 10:44     Проверка Socket на наличие соединения
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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
public class TcpClient {
 
    public static String SERVER_IP = MutTempoDate.TCP_SERVER; //Server IP address
    public static int SERVER_PORT = Integer.valueOf(MutTempoDate.TCP_SER_PORT);//Server port
    // message to send to the server
    private String mServerMessage;
    // sends message received notifications
    private OnMessageReceived mMessageListener = null;
    // while this is true, the server will continue running
    private boolean mRun = false;
    // used to send messages
    private PrintWriter mBufferOut;
    // used to read messages from the server
    private BufferedReader mBufferIn;
    private Socket socket;
    public static boolean normal_close=false;
 
    /**
     * Constructor of the class. OnMessagedReceived listens for the messages received from server
     */
    public TcpClient(OnMessageReceived listener) {
 
        mMessageListener = listener;
    }
 
    /**
     * Close the connection and release the members
     */
 
    @Subscriber(tag = "TCP_SEND_MSG")
    private void updateEvents(EventTcpMessage event) {
 
        if (event.message.equals("disconnect")) {
            normal_close = true;
            mRun = false;
            Log.e(TetGlobalData.TAG,"!!!!!!!!!!! STOPING CLIENT !!!!!!!!!!!!!!!!!");
            stopClient();
        } else {
            Log.d(TetGlobalData.TAG, "updateEvents TcpClient/sendMessage=" + event.message);
            if (mBufferOut != null && !mBufferOut.checkError()) {
                mBufferOut.println(event.message);
                mBufferOut.flush();
                //sends the message to the server
 
        }
 
    }
    }
 
    public boolean stopClient() {
 
 
        mRun = false;
 
        try {
            socket.close();
        } catch (IOException e) {
            Log.d(TetGlobalData.TAG,"TcpClient stopClient() IOException e");
            e.printStackTrace();
        }
 
        if (mBufferOut != null) {
            mBufferOut.flush();
            mBufferOut.close();
        }
 
        mMessageListener = null;
        mBufferIn = null;
        mBufferOut = null;
        mServerMessage = null;
        normal_close = true;
       // mMessageListener.messageReceived("shutdown");
        return true;
    }
 
    public void run() {
 
        Log.e(TetGlobalData.TAG,"!!!!!!!!!!!!!! New run TcpClient !!!!!!!!!!!!");
 
        mRun = true;
        EventBus.getDefault().register(this);
 
        TetTempoDate.tcpCl = this;
 
        try {
            //here you must put your computer's IP address.
            InetAddress serverAddr = InetAddress.getByName(SERVER_IP);
 
            Log.e("TcpClient", "A: Connecting...");
 
            //create a socket to make the connection with the server
            socket = new Socket(serverAddr, SERVER_PORT);
 
 
            try {
 
//                //sends the message to the server
//                mBufferOut = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
 
                //receives the message which the server sends back
                mBufferIn = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                //sendMessage("variable_ATS-Command: Hellow\n\n");
                mBufferOut = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
                //in this while the client listens for the messages sent by the server
                while (mRun) {
 
                    mServerMessage = mBufferIn.readLine();
 
                    if (mServerMessage != null && mMessageListener != null) {
                        //call the method messageReceived from MyActivity class
                        mMessageListener.messageReceived(mServerMessage);
                    }
 
                }
                if (mServerMessage != null || mMessageListener != null){
                    String message = "CON_OK";
                    EventBus.getDefault().post(new EventTcpMessage(message), "for_ConnectTask");
 
                Log.e("RESPONSE FROM SERVER", "S: Received Message: '" + mServerMessage + "'");
                }
                mBufferOut = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
 
            } catch (Exception e) {
                if(mRun) {
                    Log.e("TcpClient", "B: Error", e);
                }
                else{
                    Log.d("TcpClient", "BB: Closed", e);
                    if(!normal_close) {
                        String message = "CON_FAIL";
                        EventBus.getDefault().post(new EventTcpMessage(message), "for_ConnectTask");
                    }
                }
 
            } finally {
                //the socket must be closed. It is not possible to reconnect to this socket
                // after it is closed, which means a new socket instance has to be created.
               // stopClient();
 
            }
 
 
        } catch (Exception e) {
 
            Log.e("TcpClient", "C: Error", e);
 
            if (normal_close != true){
            String message = "CON_FAIL";
            EventBus.getDefault().post(new EventTcpMessage(message), "for_ConnectTask");
//            stopClient();
            }
        }
Не применяйте код "напрямую". Тут при коннекте ПЕРВЫМ СЕРВЕР, а не клиент, посылает сообщение о том что он готов принять запрос, и только потом клиент скидывает запрос. Просто махните местами прием->передача и все станет как вам надо.
 
Текущее время: 10:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru