TCP Client 异步通讯代码 C#
时间: 2024-09-10 22:07:39 浏览: 71
C#TCP Socket异步通讯
5星 · 资源好评率100%
在 C# 中,实现 TCP 客户端的异步通信可以通过使用 `System.Net.Sockets` 命名空间下的 `TcpClient` 类来完成。以下是一个简单的示例,展示了如何使用 `TcpClient` 来创建一个异步连接并发送数据。
```csharp
using System;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
class TcpClientAsyncExample
{
private const string server = "127.0.0.1";
private const int port = 13000;
public static async Task Main(string[] args)
{
using (TcpClient tcpClient = new TcpClient())
{
// 异步连接到服务器
await tcpClient.ConnectAsync(server, port);
// 获取网络流
NetworkStream stream = tcpClient.GetStream();
// 发送数据
string message = "Hello, Server!";
byte[] data = Encoding.ASCII.GetBytes(message);
await stream.WriteAsync(data, 0, data.Length);
// 接收响应
data = new byte[256];
int bytes = await stream.ReadAsync(data, 0, data.Length);
string responseData = Encoding.ASCII.GetString(data, 0, bytes);
Console.WriteLine($"Received: {responseData}");
// 关闭连接
stream.Close();
}
}
}
```
在这个例子中,我们创建了一个 `TcpClient` 实例,并使用 `ConnectAsync` 方法异步地连接到服务器。连接成功后,我们使用 `GetStream` 方法来获取底层网络流。
为了发送数据,我们将字符串消息转换成字节数据,并使用 `WriteAsync` 方法异步地写入网络流。同样地,我们使用 `ReadAsync` 方法来异步地读取服务器的响应。
请注意,为了保持示例的简洁性,我们使用了 `using` 语句来确保 `TcpClient` 和 `NetworkStream` 在使用完毕后能够正确地关闭和释放资源。
阅读全文