Операция записи в Android Socket - PullRequest
1 голос
/ 19 мая 2011

В моем приложении я использовал сокет чтения / записи для связи с сервером.Когда сервер выключен, операция записи в сокет вызывает исключение «конвейер прерван» только во второй раз.Первая операция записи не выдает никаких исключений.Может кто-нибудь сказать мне причину.

код, который я использовал для этого,

       SocketAddress sockaddr = new InetSocketAddress(SERVERIP, 8080);
        Socket nsocket = new Socket();
        nsocket.setSoTimeout(3000);
        nsocket.connect(sockaddr, 5000); 
        if (nsocket.isConnected()) 
            { 
            mmInStream = nsocket.getInputStream();
            mmOutStream = nsocket.getOutputStream();
            }

код для операции записи

    public void write(byte[] buffer) {          
    try {
        mmOutStream.write(buffer);
     } 
     catch (Exception e) {
        e.printStackTrace();
     }
 }

Заранее спасибо ...

1 Ответ

0 голосов
/ 19 мая 2011

Существует только одна причина ошибок из-за сломанной трубы. Вы записали соединение, которое уже было закрыто другим концом. Это само по себе является ошибкой протокола приложения и может быть вызвано предыдущей ошибкой протокола приложения на этом конце, в результате чего одноранговый узел закрывает соединение в раздражении.

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