C#心跳机制客户端的实现示例
更新时间:2024年06月23日 08:26:52 作者:栗克
本文主要介绍了C#心跳机制客户端,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
窗体(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#心跳机制客户端内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
相关文章
-
这篇文章介绍了C#多线程锁lock和Monitor的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-02-02
-
本篇文章主要介绍了C#多线程同步事件及等待句柄,希望通过本篇的介绍能对常见的线程同步方法有一个整体的认识,有需要的可以了解一下。2016-11-11
-
这篇文章主要介绍了C#中关于Task.Yeild()函数的相关资料,文中讲解非常细致,帮助大家更好的理解和学习,感兴趣的朋友可以了解下2020-07-07
-
本文主要介绍了C# cefSharep控件的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-01-01
-
这篇文章主要介绍了C#向线程中传递多个参数的解决方法(两种)的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下2016-07-07
-
这篇文章主要介绍了C#生成设置范围内的Double类型随机数的方法,对于C#的初学者有很好的借鉴价值,需要的朋友可以参考下2014-08-08
-
这篇文章介绍了C#对XtraGrid控件实现主从表关系绑定的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-06-06
-
这篇文章主要给大家介绍了关于C#中SQLite数据库入门使用的相关资料,文中通过图文以及示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2018-11-11
-
本文详细讲解了C#实现加密与解密详解的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-06-06
-
本文主要介绍了c#中task与thread区别及其使用的方法示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2022-02-02
最新评论