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 展示


浙公网安备 33010602011771号