窗体(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#心跳机制客户端内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论