コード例 #1
0
ファイル: User.java プロジェクト: tonydear/cs162-p4
  public void logoff() {
    pendingLogoff = true;

    logoffAck();

    while (!queuedServerReplies.isEmpty()) {
      TransportObject reply = null;
      try {
        reply = queuedServerReplies.poll();
        if (reply != null) sent.writeObject(reply);
      } catch (SocketException e) {
        System.err.println(e);
      } catch (Exception e) {
        if (reply != null && reply.getCommand().equals(Command.send)) {
          User sender = (User) server.getUser(reply.getSender());
          if (sender != null) {
            TransportObject error = new TransportObject(ServerReply.sendack, reply.getSQN());
            sender.queueReply(error);
          }
        }
      }
    }
    loggedOff = true;
  }