当前位置: 代码网 > it编程>编程语言>C# > C#心跳机制客户端的实现示例

C#心跳机制客户端的实现示例

2024年07月03日 C# 我要评论
窗体(richtextbox右显示聊天)步骤点击链接按钮 tcpclient客户端步骤 1创建客户端对象 2连接服务器connect 3创建网络基础流发消息 .write发消息

窗体(richtextbox右显示聊天)

步骤

点击链接按钮
         tcpclient客户端步骤
         1创建客户端对象
         2连接服务器connect
         3创建网络基础流发消息 .write发消息
         4 创建网络基础流接消息 .read接消息
         5 断开连接close()

窗体代码

namespace _02_心跳机制客户端
{
    public partial class form1 : form
    {
        public form1()
        {
            initializecomponent();
        }
        tcpclient client;
        private void button1_click(object sender, eventargs e)
        {
            if (button1.text == "连接")
            {
                try
                {
                    client = new tcpclient();
                    client.connect(combobox1.text, int.parse(combobox2.text));
                    button1.text = "断开";
                    startread();
                    heartbeat();
                }
                catch (exception ex)
                {
                    messagebox.show("连接失败");
                }
            }
            else
            {
                client.close();
                timer.stop();
                button1.text = "连接";
            }
        }
        void startread()
        {
            byte[] bs = new byte[1024];
            task.run(() =>
            {
                try
                {
                    while (true)
                    {
                        int count = client.getstream().read(bs,0,bs.length);
                        string msg = encoding.utf8.getstring(bs, 0, count);
                        richtextbox1.invoke((action)(() =>
                        {
                            richtextbox1.appendtext(msg + "\t\n");
                        }));
                    }
                }
                catch (exception ex)
                {

                    button1.text = "连接";
                }
            });
        }
        timer timer;
        void heartbeat()
        {
            timer = new timer();
            timer.interval = 10000;
            timer.tick += timer_tick;
            timer.start();
        }
        private void timer_tick(object sender, eventargs e)
        {
            client.getstream().write(new byte[] { 1 }, 0, 1);
        }
        private void button2_click(object sender, eventargs e)
        {
            byte[] bs = encoding.utf8.getbytes(textbox1.text);
            byte[] bs1 = new byte[bs.length + 1];
            bs1[0] = 0;
            bs.copyto(bs1,1);
            client.getstream().write(bs1, 0, bs1.length) ;
        }
    }
}

到此这篇关于c#心跳机制客户端的实现示例的文章就介绍到这了,更多相关c#心跳机制客户端内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网! 

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com