Esempio n. 1
0
 /**
  * Notifies all close listeners that the connection has been closed. Used by subclasses to
  * properly finish closing the connection.
  */
 private void notifyCloseListeners() {
   synchronized (listeners) {
     for (ConnectionCloseListener listener : listeners.keySet()) {
       try {
         listener.onConnectionClose(listeners.get(listener));
       } catch (Exception e) {
         Log.error("Error notifying listener: " + listener, e);
       }
     }
   }
 }
Esempio n. 2
0
 public Object registerCloseListener(ConnectionCloseListener listener, Object handbackMessage) {
   Object status = null;
   if (isClosed()) {
     listener.onConnectionClose(handbackMessage);
   } else {
     status = listeners.put(listener, handbackMessage);
   }
   return status;
 }
Esempio n. 3
0
 /**
  * Je nachdem welche Nachricht der Client dem Server liefert, wird entweder Das geschickte File
  * ausgelesen und weiterverarbeitet, oder die Verbindung getrennt.
  *
  * @throws IOException
  */
 public void listen() throws IOException {
   DataInputStream in = new DataInputStream(client.getInputStream());
   String s = in.readUTF();
   if (s.equals("sendFile")) {
     final File f = readFile();
     if (listener != null) {
       listener.fileReceived(f);
     }
     sendNotification("fileReceived");
     listen();
   } else if (s.equals("close")) {
     if (clistener != null) {
       clistener.connectionClosed();
     }
   }
 }