C#网络编程之客户端篇

因为疫情期间,在家闲的无聊,时间无处打发,就写写文章玩玩,
我是做工控行业的,网络通讯的重要性就毋庸置疑了,比如,PLC和上位机之通讯,只能相机和上位机通讯,扫码器和上位机通讯,等等,当然则是后话,万丈高楼平地起,没有基础什么都是百搭,还是来个简单的客户端把;
界面如下图所示:
在这里插入图片描述
设计原理如下图客户端测所示
在这里插入图片描述

    private void button2_Click(object sender, EventArgs e)
    {
        //连接成功后,开始发送数据
        if(client.Connected)
        {
            string str= textBox3.Text.Trim();
            byte[] buffers = Encoding.Default.GetBytes(str);
            client.Send(buffers);
        }

    }

    private void Form1_Load(object sender, EventArgs e)
    {
        textBox1.Text = "192.168.1.103";
        textBox2.Text = "8080";
        Control.CheckForIllegalCrossThreadCalls = false;
    }
    Socket client = null;
    private void button1_Click(object sender, EventArgs e)
    {
        try
        {
            
                //1.创建socket对象
                client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                //2.建立连接
                client.Connect(new IPEndPoint(IPAddress.Parse(textBox1.Text.Trim()), Int32.Parse(textBox2.Text.Trim())));
                textBox3.AppendText("已经连接上主机:" + client.LocalEndPoint + "--->" + client.RemoteEndPoint + "\r\n");
            //3.接收数据、数据需要循环接收,所以开线程还是比较适合的
            Thread td1 = new Thread(Receive);
            td1.IsBackground = true;
            td1.Start();
        }
        catch
        {
        }
    }
    void Receive()
    {
        //看到了循环接收,那好办,我们搞个循环把
        while(true)
        {
            //我们现在搞简单点,只接收小型的文本
            byte[] buffers = new byte[5 * 1024 * 1024];
            int length=  client.Receive(buffers);
            //如果和服务器断开连接
            if (length == 0) break;
            string str = Encoding.Default.GetString(buffers,0,length);
            textBox4.AppendText(str+"\r\n"); 
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值