zoukankan      html  css  js  c++  java
  • 动态系统托盘图标

    实现效果:

      

    知识运用:

      TcpListener TcpClient  和  NetworkStream类 及  Timer组件

      1> TcpListener类    //用来从Tcp网络客户端侦听连接

      

      2> TcpClient类    //为Tcp网络服务提供客户端连接

      public TcpClient(string hostname,int port)  //远程主机的DNS名 端口号

      3> NetworkStream类  //提供在阻止模式下通过Stream套接字发送和接受数据的方法

        //其Read方法用于从NetworkStream类读取数据

      public override int Read(byte[] buffer,int offset,int size)

      

      4> notifyIcon控件的Icon属性

    实现代码:

            //声明变量
            private Thread td;
            private string message = "";
            private TcpListener tcpListener;
            //监听方法
            private void startListen()
            {
                tcpListener = new TcpListener(999);
                tcpListener.Start();
                while (true)
                {
                    TcpClient client = tcpListener.AcceptTcpClient();
                    NetworkStream netStream = client.GetStream();
                    byte[] bt=new byte[1024];
                    netStream.Read(bt,0,bt.Length);
                    message = Encoding.Default.GetString(bt);
                }
            }
            //发送消息
            private void button1_Click(object sender, EventArgs e)
            {
                TcpClient client = new TcpClient(textBox1.Text,999);
                string msg = "嗨,你好! 南极鱼";
                NetworkStream netStream = client.GetStream();
                StreamWriter sw = new StreamWriter(netStream);
                sw.WriteLine(msg);
                sw.Flush();
                sw.Close();
                client.Close();
            }
            //初始化
            private void Form1_Load(object sender, EventArgs e)
            {
                td = new Thread(new ThreadStart(startListen));
                td.Start();
                timer1.Start();
            }
            //清理工作
            private void Form1_FormClosing(object sender, FormClosingEventArgs e)
            {
                if (td.ThreadState == ThreadState.Running)
                    td.Abort();
                if (tcpListener != null)
                    tcpListener.Stop();
            }
            //定时检查有无消息
            bool flag;
            private void timer1_Tick(object sender, EventArgs e)
            {
                if (message.Length > 0)
                {
                    if(flag)
                        { notifyIcon1.Icon = Properties.Resources._1; flag = false; }
                    else
                        { notifyIcon1.Icon = Properties.Resources._2; flag = true; }
                }
            }
            //停止闪烁
            private void button2_Click(object sender, EventArgs e)
            {
                message = "";
                notifyIcon1.Icon = Properties.Resources._3;
            }
    

      

  • 相关阅读:
    4.8日学习
    Apache安装
    HTML5 review
    个人阅读作业LAST
    个人阅读作业Week7
    结对编程:界面模块总结
    个人博客作业Week3
    结对编程博客
    个人博客week2
    软工第一次作业简单总结
  • 原文地址:https://www.cnblogs.com/feiyucha/p/10317733.html
Copyright © 2011-2022 走看看