需要用的包:
把之前的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()));}}
}