/**
  * We both log the packet summary to console and write it back to client.
  *
  * <p>Override super method
  *
  * @see org.apache.niolex.network.IPacketHandler#handlePacket(PacketData, IPacketWriter)
  */
 @Override
 public void handlePacket(PacketData sc, IPacketWriter wt) {
   StringBuilder sb = new StringBuilder();
   sb.append("---------------------Packet Summary:----------------------\ncode\t");
   sb.append(sc.getCode()).append("\nversion\t").append(sc.getVersion());
   sb.append("\nlength\t").append(sc.getLength());
   sb.append("\nreceived at\t").append(DateTimeUtil.formatDate2DateTimeStr());
   sb.append("\nfrom\t").append(wt.getRemoteName());
   sb.append("\n--------------------------------------------------------\n");
   PacketData bc = new PacketData(sc.getCode(), sb.toString());
   wt.handleWrite(bc);
   LOG.debug("summary sent to remote.\n{}", sb);
 }
 /**
  * Override super method
  *
  * @see org.apache.niolex.network.IPacketHandler#handlePacket(PacketData, IPacketWriter)
  */
 @Override
 public void handlePacket(PacketData sc, IPacketWriter wt) {
   // Dispatch package according to packet code.
   switch (sc.getCode()) {
       // Server published address list.
     case Config.CODE_NAME_DATA:
       List<String> list = transformer.getDataObject(sc);
       // Let sub classes to deal with it.
       handleRefresh(list);
       break;
       // Server published new address record.
     case Config.CODE_NAME_DIFF:
       AddressRecord bean = transformer.getDataObject(sc);
       // Let sub classes to deal with it.
       handleDiff(bean);
       break;
     default:
       LOG.warn("Packet received for code [{}] have no handler, just ignored.", sc.getCode());
       break;
   }
 }
 /**
  * Override super method
  *
  * @see
  *     org.apache.niolex.network.IPacketHandler#handlePacket(org.apache.niolex.network.PacketData,
  *     org.apache.niolex.network.IPacketWriter)
  */
 @Override
 public void handlePacket(PacketData sc, IPacketWriter wt) {
   String groupName = StringUtil.utf8ByteToStr(sc.getData());
   groupService.svrSendGroup(groupName);
 }