Пример #1
0
  public void close(SocketChannel ch) {
    if (!listener.handleConnectionClose(ch)) return;

    try {
      ch.close();
    } catch (IOException e) {
      e.printStackTrace();
    }

    ch.keyFor(selector).cancel();
    synchronized (changeRequests) {
      Iterator changes = changeRequests.iterator();
      while (changes.hasNext()) {
        ChangeRequest req = (ChangeRequest) changes.next();
        if (req.socket == ch) {
          changeRequests.remove(req);
          break;
        }
      }
    }
  }