Ejemplo n.º 1
0
        private static void Listener_OnMsgReceived(AsyncUserToken token, byte[] data)
        {
            Console.WriteLine("接收到数据:");
            Console.WriteLine(" 来源IP:" + token.Remote.Address.ToString());
            Console.WriteLine(" 连接时间:" + token.ConnectTime.ToString());
            Console.WriteLine(" 最近通讯时间:" + token.FreshTime.ToString());

            RecieveMessageDecode reader  = new RecieveMessageDecode(data);
            RecieveMessage       message = reader.Read();

            //string str = BytesUtil.ToHexString(message.ToByte());

            //Console.WriteLine(" 发送内容:" + str);
        }
Ejemplo n.º 2
0
        private void Listener_OnMsgReceived(AsyncUserToken token, byte[] info)
        {
            string str = BytesUtil.ToHexString(info);

            try
            {
                RecieveMessageDecode reader  = new RecieveMessageDecode(info);
                RecieveMessage       message = reader.Read();

                StringBuilder sb = new StringBuilder();
                sb.Append("接收到数据:");
                sb.Append("\r\n");
                sb.Append(" 来源IP:" + token.Remote.Address.ToString());
                sb.Append("\r\n");
                sb.Append(" 接收时间:" + DateTime.Now);
                sb.Append("\r\n");
                sb.Append(" 数据类型:" + message.FunctionCode);
                sb.Append("\r\n");
                sb.Append(" 接收内容:" + str);
                sb.Append("\r\n");
                AppendLog(sb.ToString());

                //更新设备缓存
                UpdateCache(message.ClientCodeStr, token.UID);
                if (message.FunctionCode.Equals("F2"))
                {
                    return;
                }
                IMessageHandler handler = HandlerFactory.Create(message.FunctionCode, token.UID, message);
                handler.Handle();

                //如果是设备自报数据,向设备发送接收成功的报文
                if (message.FunctionCode.Equals("C0"))
                {
                    SendMessage res = new SendMessage();
                    res.ClientCode   = message.ClientCode;
                    res.CenterCode   = message.CenterCode;
                    res.SendTime     = DateTime.Now;
                    res.Serial       = 0;
                    res.FunctionCode = "C0";

                    listener.Send(token.UID, res.ToByte());
                }
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog("接收消息时出错", "接收到的消息:" + str + "\r\n" + ex.Message, ex.StackTrace);
            }
        }
Ejemplo n.º 3
0
        private void Listener_OnMsgReceived(AsyncUserToken token, byte[] info)
        {
            string str = BytesUtil.ToHexString(info);

            try
            {
                RecieveMessageDecode reader     = new RecieveMessageDecode(info);
                RecieveMessage       message    = reader.Read();
                MessageHandler       msgHandler = new MessageHandler(token.UID, message);
                msgHandler.OnIPChanged += MsgHandler_OnIPChanged;
                msgHandler.OnMsgSend   += MsgHandler_OnMsgSend;
                msgHandler.Set();
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog("接收消息时出错", "接收到的消息:" + str + "\r\n" + ex.Message, ex.StackTrace);
            }
        }