最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#心跳機(jī)制客戶(hù)端的實(shí)現(xiàn)示例

 更新時(shí)間:2024年06月23日 08:26:52   作者:栗克  
本文主要介紹了C#心跳機(jī)制客戶(hù)端,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

窗體(richTextBox右顯示聊天)

步驟

點(diǎn)擊鏈接按鈕
         tcpclient客戶(hù)端步驟
         1創(chuàng)建客戶(hù)端對(duì)象
         2連接服務(wù)器connect
         3創(chuàng)建網(wǎng)絡(luò)基礎(chǔ)流發(fā)消息 .write發(fā)消息
         4 創(chuàng)建網(wǎng)絡(luò)基礎(chǔ)流接消息 .read接消息
         5 斷開(kāi)連接close()

窗體代碼

namespace _02_心跳機(jī)制客戶(hù)端
{
    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 = "斷開(kāi)";
                    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ī)制客戶(hù)端的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)C#心跳機(jī)制客戶(hù)端內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

最新評(píng)論

榆林市| 荃湾区| 贵溪市| 肇庆市| 西乌| 晋城| 华宁县| 营山县| 共和县| 山东省| 临高县| 监利县| 南召县| 寿阳县| 西林县| 迁西县| 保山市| 大姚县| 黑龙江省| 买车| 隆尧县| 慈溪市| 平舆县| 营口市| 曲周县| 衡阳市| 咸丰县| 西乌珠穆沁旗| 衡山县| 涟水县| 翁源县| 维西| 高唐县| 华阴市| 杭州市| 高阳县| 梅州市| 策勒县| 翼城县| 贵德县| 麟游县|