将tcp通讯时接收的数据封装成一个委托
时间: 2024-01-26 19:03:51 浏览: 15
好的,我理解了您的问题。下面是一个大体封装的代码示例:
public delegate void TcpDataReceived(byte[] data);
public class TcpClientWrapper
{
private readonly TcpClient _client;
private readonly byte[] _buffer = new byte[1024];
public TcpDataReceived DataReceived;
public TcpClientWrapper(TcpClient client)
{
_client = client;
//_buffer = new byte[1024];
_client.BeginReceive(_buffer, 0, _buffer.Length, SocketFlags.None, OnDataReceived, null);
}
private void OnDataReceived(IAsyncResult ar)
{
var bytesRead = _client.EndReceive(ar);
if (bytesRead > 0)
{
var receivedData = new byte[bytesRead];
Array.Copy(_buffer, 0, receivedData, 0, bytesRead);
DataReceived?.Invoke(receivedData);
}
_client.BeginReceive(_buffer, 0, _buffer.Length, SocketFlags.None, OnDataReceived, null);
}
}
希望这能解决您的问题!