public override string ToString()
        {
            StringBuilder sb = new StringBuilder();

            sb.Append(DhcpConstants.GetV4MessageString(GetMessageType()));
            if (this.GetOp() == DhcpConstants.V4_OP_REPLY)
            {
                sb.Append(" to ");
            }
            else
            {
                sb.Append(" from ");
            }
            sb.Append(_remoteAddress.ToString());

            sb.Append(" (htype=");
            sb.Append(this.GetHtype());
            sb.Append(", hlen=");
            sb.Append(this.GetHlen());
            sb.Append(", hops=");
            sb.Append(this.GetHops());
            sb.Append(", xid=");
            sb.Append(this.GetTransactionId());
            sb.Append(", secs=");
            sb.Append(this.GetSecs());
            sb.Append(", flags=");
            sb.Append(this.GetFlags());
            sb.Append(", ciaddr=");
            sb.Append(this.GetCiAddr().ToString());
            sb.Append(", yiaddr=");
            sb.Append(this.GetYiAddr().ToString());
            sb.Append(", siaddr=");
            sb.Append(this.GetSiAddr().ToString());
            sb.Append(", giaddr=");
            sb.Append(this.GetGiAddr().ToString());
            sb.Append(", chaddr=");
            sb.Append(Util.ToHexString(this.GetChAddr()));
            sb.Append(')');
            return(sb.ToString());
        }
        public override string ToString()
        {
            StringBuilder sb = new StringBuilder(Util.LINE_SEPARATOR);

            sb.Append(DhcpConstants.getV6MessageString(this.GetMessageType()));
            sb.Append(" (xactId=");
            sb.Append(this.GetTransactionId());
            sb.Append(')');
            if (((this.MessageType == DhcpConstants.V6MESSAGE_TYPE_ADVERTISE) ||
                 ((this.MessageType == DhcpConstants.V6MESSAGE_TYPE_REPLY) ||
                  (this.MessageType == DhcpConstants.V6MESSAGE_TYPE_RECONFIGURE))))
            {
                sb.Append(" to ");
            }
            else
            {
                sb.Append(" from ");
            }

            sb.Append(Util.SocketAddressAsString(this.remoteAddress));
            return(sb.ToString());
        }