Клиент, чтобы закрыть соединение - PullRequest
1 голос
/ 28 ноября 2011

У меня есть слушатель сокета, который продолжает слушать данные. Проблема в том, что клиент, который отправляет данные, в конце концов сам закроет соединение. Основываясь на моих кодах ниже, я задаюсь вопросом, нужно ли мне выполнять эту часть кодов там, где она делает writeBuffer.close();?

Должен ли я удалить заключительную часть и просто вставить гнездо, закрывающее защелку?

public void run()
{   
     BufferedWriter writeBuffer = null;
     BufferedReader readBuffer = null;

     String message="";
     try {
         writeBuffer =  new BufferedWriter(new OutputStreamWriter(receivedSocketConn1.getOutputStream()));
         readBuffer = new BufferedReader(new InputStreamReader(receivedSocketConn1.getInputStream()));

         int m = 0, count=0;
         int nextChar=0;         

         while ((nextChar=readBuffer.read()) != -1) 
         {
          message += (char) nextChar;  
          if (nextChar == '#')
          {
              System.out.println("\n\nSending PA : "+message);
                  writeBuffer.write("$PA\r\n");
              writeBuffer.flush(); 
              message="";               
              }
         }
    } 
    catch (Exception ex)  
    { 
        System.out.println("MyError:Exception has been caught in in the main first try");
    ex.printStackTrace(System.out);
    }   
    /*finally
    {
        try 
        {
            if ( writeBuffer != null ) 
        {
            writeBuffer.close();
        }
            else 
        {
                System.out.println("MyError:writeBuffer is null in finally close");
        }
        }
        catch(IOException ex)
        {
            ex.printStackTrace(System.out);
        }
    }*/
}

1 Ответ

0 голосов
/ 28 ноября 2011

Всегда хорошая идея явно закрывать соединения, которые вы используете. Подумайте об этом, вполне возможно, что клиент никогда не закроет соединение (конечно, тогда вам придется реализовать какой-то механизм тайм-аута, который через определенное время закрывает соединение на стороне сервера, но это другое материя).

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

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