// Initialize the socket connection and prepare the output stream
 private void initSocket(String host, String port) throws IOException {
   // check the validity of the host name
   if (null == host || "".equals(host)) { // $NON-NLS-1$
     // logging.C=Illegal host argument.
     throw new IllegalArgumentException(Messages.getString("logging.C")); // $NON-NLS-1$
   }
   // check the validity of the port number
   int p = 0;
   try {
     p = Integer.parseInt(port);
   } catch (NumberFormatException e) {
     // logging.D=Illegal port argument.
     throw new IllegalArgumentException(Messages.getString("logging.D")); // $NON-NLS-1$
   }
   if (p <= 0) {
     // logging.D=Illegal port argument.
     throw new IllegalArgumentException(Messages.getString("logging.D")); // $NON-NLS-1$
   }
   // establish the network connection
   try {
     this.socket = new Socket(host, p);
   } catch (IOException e) {
     // logging.E=Failed to establish the network connection.
     getErrorManager()
         .error(
             Messages.getString("logging.E"),
             e, //$NON-NLS-1$
             ErrorManager.OPEN_FAILURE);
     throw e;
   }
   // BEGIN android-modified
   super.internalSetOutputStream(new BufferedOutputStream(this.socket.getOutputStream(), 8192));
   // END android-modified
 }
 /**
  * Closes this handler. The network connection to the host is also closed.
  *
  * @throws SecurityException If a security manager determines that the caller does not have the
  *     required permission to control this handler.
  */
 @Override
 public void close() {
   try {
     super.close();
     if (null != this.socket) {
       this.socket.close();
       this.socket = null;
     }
   } catch (Exception e) {
     // logging.F=Exception occurred when closing the socket handler.
     getErrorManager()
         .error(
             Messages.getString("logging.F"),
             e, //$NON-NLS-1$
             ErrorManager.CLOSE_FAILURE);
   }
 }