通过IP2000 获取vista120报警消息(#)

 

 

  private static readonly IPAddress GroupAddress = IPAddress.Parse("192.168.0.3");
        private const int GroupPort = 1868;      
        private Thread m_listenerThread;  
        private System.Windows.Forms.Timer m_eventTimer;
        private Queue<String> m_msgQueue;
        private int x0 = 1;
        public MainForm()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        { 
    
        }

        private void MainForm_Load(object sender, EventArgs e)
        {
            m_eventTimer = new System.Windows.Forms.Timer();
            m_msgQueue = new Queue<string>();
            m_eventTimer.Interval = 100;
            m_eventTimer.Tick+=new EventHandler(m_eventTimer_Tick);
            ThreadStart th=new ThreadStart(StartListen);
            m_listenerThread = new Thread(th);
            m_listenerThread.Start();
            m_eventTimer.Start();
         
          
        }
        private void m_eventTimer_Tick(object sender,EventArgs e)
        {
            if (m_msgQueue.Count > 0)
            {
                String str = m_msgQueue.Dequeue();
                m_msg.Text += str;
            }
        }

 

 private void StartListen()
        {
            bool done = false;
            UdpClient listener = new UdpClient(1858);
            IPEndPoint groupEP = new IPEndPoint(GroupAddress, 1868);
            listener.EnableBroadcast = true;
            try
            {              
                listener.Connect(groupEP);
                while (!done)
                {
                    Console.WriteLine("Waiting for broadcast");
                    byte[] bytes = listener.Receive(ref groupEP);
                     String str;                   
                    if ('P' == bytes[0])
                    {
                        str = String.Format("{0}/r/n", Encoding.ASCII.GetString(bytes, 0, bytes.Length));
                        m_msgQueue.Enqueue(str);
                    }
                    //else
                    //{                      
                    //    int subNumber=GetSubSys(bytes[1]);
                    //    int zone = GetZone(bytes[2]);
                    //    bool zoneValid = false;
                    //    int state = GetZoneState(bytes[3],ref zoneValid);
                    //    str = String.Format("状态:{0} 子系统:{1} 防区:{2} 状态:{3} 设备状态:{4} 针对防区:{5}/r/n", bytes[0], subNumber, zone, state, bytes[4], zoneValid);
                    //    if (subNumber > 0 && subNumber < 5 && state > 0 && bytes[4]==4)
                    //    {
                    //        m_msgQueue.Enqueue(str);
                    //    }
                    //}
                }
                listener.Close();              
            }
            catch (Exception e2)
            {
              //  m_msg.Text += e2.Message;
            }
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值