C# tcp通信回调函数
时间: 2023-06-30 11:06:50 浏览: 174
在C#中,使用Socket类进行TCP通信时,可以使用异步回调方式处理接收到的数据。具体步骤如下:
1. 创建一个Socket对象,并使用BeginReceive方法开始异步接收数据。
```
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallback), socket);
```
2. 创建一个回调函数ReceiveCallback,在该函数中进行数据处理。
```
private void ReceiveCallback(IAsyncResult ar)
{
Socket socket = (Socket)ar.AsyncState;
int length = socket.EndReceive(ar);
byte[] data = new byte[length];
Array.Copy(buffer, data, length);
// 处理接收到的数据
}
```
在ReceiveCallback函数中,使用EndReceive方法获取接收到的数据长度,然后用Array.Copy方法将接收到的数据复制到一个byte数组中。接收到的数据就可以在这个byte数组中进行处理了。
3. 在回调函数中使用BeginReceive方法开始下一轮异步接收数据。
```
socket.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallback), socket);
```
通过这种方式,可以实现TCP通信的异步接收和处理。
阅读全文