⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 classstartudpthread.cs

📁 用Visual C++ 实现的飞鸽传书的源代码
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.Windows.Forms;
namespace FlyMessage
{
    class ClassStartUdpThread
    {
        private ListView lvwDisplayUser;
        private Label lblUserCount;
        public ClassStartUdpThread(ListView lvwDisplayUser,Label lblUserCount)
        {
            this.lvwDisplayUser = lvwDisplayUser;
            this.lblUserCount = lblUserCount;
        }
        public  void StartUdpThread()
        {

            UdpClient server = new UdpClient(7999);
            IPEndPoint ep = new IPEndPoint(IPAddress.Any, 0);


            while (true)
            {
                byte[] buff = server.Receive(ref ep);
                string user = Encoding.Default.GetString(buff);
                string cmd = user.Substring(0, 6);
                string user1 = user.Substring(6);
                if (cmd == ":USER:")
                {
                    try
                    {
                        string[] s = user1.Split(':');
                        ListViewItem lviUserName = new ListViewItem();
                        ListViewItem.ListViewSubItem lvsiComputerName = new ListViewItem.ListViewSubItem();
                        ListViewItem.ListViewSubItem lvsiIP = new ListViewItem.ListViewSubItem();
                        ListViewItem.ListViewSubItem lvsiWorkGroup = new ListViewItem.ListViewSubItem();
                        lviUserName.Text = s[0];
                        lvsiComputerName.Text = s[1];
                        lvsiIP.Text = s[2];
                        lvsiWorkGroup.Text = s[3];
                        lviUserName.SubItems.Add(lvsiComputerName);
                        lviUserName.SubItems.Add(lvsiIP);
                        lviUserName.SubItems.Add(lvsiWorkGroup);

                        //if (this.lvwDisplayUser.FindItemWithText(lvsiIP.Text) == null)
                        //{
                        //    this.lvwDisplayUser.Items.Add(lviUserName);
                        //}
                        bool flag = true;
                        for (int i = 0; i < this.lvwDisplayUser.Items.Count; i++)
                        {
                            if (lvsiIP.Text == this.lvwDisplayUser.Items[i].SubItems[2].Text)
                            {
                                flag = false;
                            }
                        }
                        if (flag)
                        {
                            this.lvwDisplayUser.Items.Add(lviUserName);
                        }
                        lblUserCount.Text = "在线人数:" + this.lvwDisplayUser.Items.Count;
                    }
                    catch
                    {
                        MessageBox.Show("有位朋友下线了"); 
                    }

                }
            }

        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -