加载中...

tcp 串口并存客户端

需要用的包:

把之前的tcp修改成控件

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using STTech.BytesIO.Core;
using STTech.BytesIO.Core.Entity;
using STTech.BytesIO.Serial;

namespace Demo.BytesIO.Client
{
    public partial class ClientPanel : UserControl
    {
        private BytesClient client;
        private ClientPanel()
        {
            InitializeComponent();
            CheckForIllegalCrossThreadCalls = false;

            //client = new SerialClient();

           
        }

        public ClientPanel(BytesClient client) : this()
        {
            this.client = client;
            propertyGrid.SelectedObject = client;

            client.OnDataReceived += Client_OnDataReceived;
            client.OnConnectedSuccessfully += Client_OnConnectedSuccessfully;
            client.OnDisconnected += Client_OnDisconnected;
            client.OnDataSent += Client_OnDataSent;         
        }

        private void Client_OnDataSent(object sender, STTech.BytesIO.Core.Entity.DataSentEventArgs e)
        {
            Print($"发送数据:{e.Data.EncodeToString("GBK")}");
        }

        private void Client_OnDisconnected(object sender, STTech.BytesIO.Core.Entity.DisconnectedEventArgs e)
        {
            Print($"已断开({e.ReasonCode})");
        }

        private void Client_OnConnectedSuccessfully(object sender, STTech.BytesIO.Core.Entity.ConnectedSuccessfullyEventArgs e)
        {
           Print("连接成功");
        }

        private void Client_OnDataReceived(object sender, STTech.BytesIO.Core.Entity.DataReceivedEventArgs e)
        {
            Print($"收到数据:{e.Data.EncodeToString("GBK")}");
        }

        private void btnConnect_Click(object sender, EventArgs e)
        {
            client.Connect();
        }

        private void btnDisconnect_Click(object sender, EventArgs e)
        {
            client.Disconnect();
        }

        private void tbSend_TextChanged(object sender, EventArgs e)
        {

        }

        private void btnSend_Click(object sender, EventArgs e)
        {
            client.Send(tbSend.Text.GetBytes("GBK"));
        }
        private void Print(string msg)
        {
            tbRecv.AppendText($"[{DateTime.Now}] {msg}\r\n");
        }
    }
}

2.新建个窗体

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using STTech.BytesIO.Serial;
using STTech.BytesIO.Tcp;

namespace Demo.BytesIO.Client
{
    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();
        }

        private void tsmiCreateTcpClient_Click(object sender, EventArgs e)
        {
            tab.AddPage("TCP客户端", new ClientPanel(new TcpClient()));
        }

        private void tsmiCreateSerialClient_Click(object sender, EventArgs e)
        {
            tab.AddPage("串口客户端",new ClientPanel(new SerialClient()));
        }
    }
}

3 展示

posted @ 2025-02-20 21:21  神乐羊  阅读(34)  评论(0)    收藏  举报