/** * 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); } } } }
public Object registerCloseListener(ConnectionCloseListener listener, Object handbackMessage) { Object status = null; if (isClosed()) { listener.onConnectionClose(handbackMessage); } else { status = listeners.put(listener, handbackMessage); } return status; }
/** * 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(); } } }