сокет Android соединение на стороне сервера закрыть - PullRequest
1 голос
/ 03 февраля 2012

пишу сокет клиент-серверное соединение. Сервер прослушивает имя клиента, и если оно недоступно, сервер закрывает соединение. С правильными именами все работает. Клиент:

clientSocket = new Socket("192.168.1.102", 15780);
outToServer = new DataOutputStream(clientSocket.getOutputStream());
sendRequest(uName);
currentInt = 0;
updateUI();

Потом проверяю, можно ли открыть соединение.

private void updateUI()
    {  
        if(currentInt <= 100)
        {
            if(clientSocket.isConnected())  
            {
                outServ.setText("Complete!");
                Intent i = new Intent(this, RoomClass.class);
                startActivity(i);
                mRedrawHandler.removeMessages(0);
            }
        }else{
            currentInt++;  
            mRedrawHandler.sleep(50);  
        }
    } 

И это всегда связано! Но на стороне сервера закрытый порт Cliet. Я слышал, что при этом нельзя проверить, закрыто ли соединение. Как это сделать?

1 Ответ

2 голосов
/ 03 февраля 2012

Socket.isConnected () вернет false, только если Сервер закрывается должным образом (вызывая метод .close ()).Если у вас нет контроля над сокетом сервера, используйте PrintWrite.checkError ()

См. Этот пост для примеров: https://stackoverflow.com/a/8268497/1012381

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...