C#心跳機(jī)制客戶端的實(shí)現(xiàn)示例
窗體(richTextBox右顯示聊天)

步驟
點(diǎn)擊鏈接按鈕
tcpclient客戶端步驟
1創(chuàng)建客戶端對象
2連接服務(wù)器connect
3創(chuàng)建網(wǎng)絡(luò)基礎(chǔ)流發(fā)消息 .write發(fā)消息
4 創(chuàng)建網(wǎng)絡(luò)基礎(chǔ)流接消息 .read接消息
5 斷開連接close()
窗體代碼
namespace _02_心跳機(jī)制客戶端
{
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) ;
}
}
}到此這篇關(guān)于C#心跳機(jī)制客戶端的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)C#心跳機(jī)制客戶端內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#基于Socket的TCP通信實(shí)現(xiàn)聊天室案例
這篇文章主要為大家詳細(xì)介紹了C#基于Socket的TCP通信實(shí)現(xiàn)聊天室案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
C#自定義控件實(shí)現(xiàn)TextBox禁止粘貼的方法
這篇文章主要介紹了C#自定義控件實(shí)現(xiàn)TextBox禁止粘貼的方法,結(jié)合具體實(shí)例形式分析了C#自定義控件的創(chuàng)建、使用方法及TextBox禁止粘貼的實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-06-06
C#調(diào)用C動態(tài)鏈接庫的實(shí)現(xiàn)
動態(tài)鏈接庫是不能直接執(zhí)行的,也不能接收消息,它只是一個獨(dú)立的文件,本文主要介紹了C#調(diào)用C動態(tài)鏈接庫的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01
C#之HttpClient設(shè)置cookies的兩種方式
這篇文章主要介紹了C#之HttpClient設(shè)置cookies的兩種方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11
Unity UGUI的RectMask2D遮罩組件的介紹使用
這篇文章主要為大家介紹了Unity UGUI的RectMask2D遮罩組件的介紹使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
C#中的delegate委托類型基本學(xué)習(xí)教程
這篇文章主要介紹了C#中的delegate委托類型基本學(xué)習(xí)教程,委托是C#語言所具有的一個重要特性,需要的朋友可以參考下2016-01-01

