/// <summary>
        /// 接收消息包
        /// </summary>
        /// <param name="stream"></param>
        private MessageBag ReceiveMessageBag(NetworkStream stream)
        {
            MessageBag bag = null;

            try
            {
                byte[]      buffer = Utility.Stream.ReadStream(stream, MessageHead.HeadLength);
                MessageHead head   = MessageHead.Parse(buffer);
                if (head.BodyLength > 0)
                {
                    byte[] bytesBody = Utility.Stream.ReadStream(stream, head.BodyLength);

                    bag = new MessageBag(head, bytesBody);
                }
                else
                {
                    bag = new MessageBag(head);
                }
            }
            catch (Exception ex)
            {
                ExceptionRecord.Record(ex.Message + ex.Source + ex.TargetSite + ex.StackTrace);
                throw;
            }
            return(bag);
        }
        /// <summary>
        /// 监听客户请求
        /// </summary>
        public void Listen()
        {
            ///读取配置文件,获取端口号
            Configuration config     = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            string        serverPort = config.AppSettings.Settings["ServerPort"].Value;

            incFilePath = Path.Combine(Application.StartupPath, "IncFile");
            port        = Convert.ToInt32(serverPort);

            try
            {
                listener = new TcpListener(IPAddress.Any, port);
                listener.Start();

                while (true)
                {
                    TcpClient client = listener.AcceptTcpClient();

                    NetworkStream stream = client.GetStream();

                    //接收消息包
                    MessageBag recBag = ReceiveMessageBag(stream);

                    //解析消息包
                    AnalyzeMessageBag(stream, recBag);
                }
            }
            catch (Exception ex)
            {
                //Debug.Fail(ex.Message);
                ExceptionRecord.Record(ex.Message + ex.Source + ex.TargetSite + ex.StackTrace);
                throw;
            }
        }
 /// <summary>
 /// 发送消息包
 /// </summary>
 /// <param name="stream"></param>
 /// <param name="bag"></param>
 private void SendMessageBag(NetworkStream stream, MessageBag bag)
 {
     try
     {
         byte[] buffer = bag.ToBytes();
         stream.Write(buffer, 0, buffer.Length);
     }
     catch (Exception ex)
     {
         // Debug.Fail(ex.Message);
         ExceptionRecord.Record(ex.Message + ex.Source + ex.TargetSite + ex.StackTrace);
         throw;
     }
 }
        /// <summary>
        /// 更新服务器端词库
        /// </summary>
        /// <param name="updateStr"></param>
        private void UpdateServerDict(string updateStr)
        {
            try
            {
                WordSqlXml sql = new WordSqlXml();
                sql.LoadXml(updateStr);

                foreach (var item in sql)
                {
                    WordSqlXmlAction word = (WordSqlXmlAction)item;
                    word.Run();
                }
            }
            catch (Exception ex)
            {
                ExceptionRecord.Record(ex.Message + ex.Source + ex.TargetSite + ex.StackTrace);
            }
        }