温馨提示×

c# tcpclient 如何实现异步通信

c#
小樊
204
2024-08-15 00:43:42
栏目: 编程语言

在C#中,可以使用TcpClient类来实现TCP异步通信。以下是一个简单的示例代码,演示如何使用TcpClient类实现异步通信:

using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        // 创建TcpClient对象
        TcpClient client = new TcpClient();

        // 连接到服务器
        await client.ConnectAsync("127.0.0.1", 8080);

        Console.WriteLine("Connected to server");

        // 发送数据
        NetworkStream stream = client.GetStream();
        string message = "Hello from client";
        byte[] data = Encoding.ASCII.GetBytes(message);
        await stream.WriteAsync(data, 0, data.Length);

        Console.WriteLine("Sent: {0}", message);

        // 接收数据
        data = new byte[256];
        int bytesRead = await stream.ReadAsync(data, 0, data.Length);
        string response = Encoding.ASCII.GetString(data, 0, bytesRead);

        Console.WriteLine("Received: {0}", response);

        // 关闭连接
        client.Close();
    }
}

在这个示例中,首先创建了一个TcpClient对象,并使用ConnectAsync方法连接到指定的服务器和端口。然后通过GetStream方法获得网络流对象,可以使用WriteAsync和ReadAsync方法来进行数据的发送和接收。最后使用Close方法关闭连接。

需要注意的是,异步通信需要在Main方法中添加async标记,并使用async和await关键字来实现异步操作。

0