欢迎光临
我们一直在努力

C#程序基础 - 上一节WS访问库的应用。

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    WH_Client? web = null;

    private void button1_Click(object sender, EventArgs e)
    {
        if (web == null)
        {
            web = new WH_Client() { IsAutoGetData = true, AutoReConnString = "closed" };

            web.SetHear(int.Parse(cmbHear.Text));
            web.SetProxy(cmbProxy.Text);
            web.SetHeaders(txtHeader.Text);

            web.OnGetData += Web_OnGetData;
            web.OnLoginfo += Web_OnLoginfo;
            web.OnStateChanged += Web_OnStateChanged;
            web.Connection(cmbURL.Text);
            laState.BackColor = web?.State ?? false ? Color.Green : Color.Red;
        }
    }

    private void Web_OnStateChanged(WH_Client sender, ClientState e)
    {
        lstLog.BeginInvoke(() =>
        {

            lstLog.Items.Insert(0, $"[{DateTime.Now.ToString("HH:mm:ss")}]状态改变:" + e.ToString());
            laState.BackColor = web?.State ?? false ? Color.Green : Color.Red;
        });
    }

    private void Web_OnLoginfo(WH_Client sender, string e)
    {
        lstLog.BeginInvoke(() =>
        {

            lstLog.Items.Insert(0, $"[{DateTime.Now.ToString("HH:mm:ss")}]消息:" + e);
        });
    }

    private void Web_OnGetData(WH_Client sender, DataInfo e)
    {
        lstLog.BeginInvoke(() =>
        {
            lstLog.Items.Insert(0, $"[{DateTime.Now.ToString("HH:mm:ss")}]收到数据:" + e.Count.ToString() + "字节" + e.Text);
        });
    }

    private void button2_Click(object sender, EventArgs e)
    {
        if (web != null)
        {
            web.OnGetData -= Web_OnGetData;
            web.OnLoginfo -= Web_OnLoginfo;
            web.Close();
            laState.BackColor = web?.State ?? false ? Color.Green : Color.Red;
            if (web != null)
            {
                web.OnStateChanged -= Web_OnStateChanged;
                web.Dispose();
            }
            web = null;
        }
    }

    private void button3_Click(object sender, EventArgs e)
    {
        string str = cmbSend.Text + $"[{DateTime.Now}]";
        if (web?.State == true)
        {
            if (web?.SendData(new DataInfo(str)) == true)
            {
                lstLog.BeginInvoke(() =>
                {
                    lstLog.Items.Insert(0, $"[{DateTime.Now.ToString("HH:mm:ss")}]发数据:[" + str + "]成功!");
                });
            }
        }
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        timer1.Enabled = false;
        button3_Click(sender, e);
        timer1.Enabled = true;
    }

    private void button4_Click(object sender, EventArgs e)
    {
        timer1.Enabled = !timer1.Enabled;
        if (!timer1.Enabled)
            timer1.Interval = int.Parse(txtIntval.Text);
        button4.Text = !timer1.Enabled ? "连接发送" : "停止发送";

    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }
}

赞(0)
未经允许不得转载:171主机测评 » C#程序基础 - 上一节WS访问库的应用。
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址