C# 异步委托 TCP 客户端示例:AutoTcpClient
以下是使用 C# 编写的带异步委托并且绑定事件的 Tcp 客户端 AutoTcpClient 程序的示例:
using System;
using System.Net;
using System.Net.Sockets;
using System.Threading.Tasks;
namespace AutoTcpClient
{
class Program
{
static async Task Main(string[] args)
{
string serverIp = '127.0.0.1';
int serverPort = 8080;
TcpClient client = new TcpClient();
await client.ConnectAsync(IPAddress.Parse(serverIp), serverPort);
Console.WriteLine('Connected to server');
NetworkStream stream = client.GetStream();
// 异步读取服务器发送的数据
Task.Run(async () =>
{
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = await stream.ReadAsync(buffer, 0, buffer.Length)) > 0)
{
string data = System.Text.Encoding.ASCII.GetString(buffer, 0, bytesRead);
Console.WriteLine('Received: {0}', data);
}
});
// 异步发送数据给服务器
while (true)
{
string message = Console.ReadLine();
byte[] data = System.Text.Encoding.ASCII.GetBytes(message);
await stream.WriteAsync(data, 0, data.Length);
}
}
}
}
在这个示例中,我们使用 TcpClient 连接到指定的服务器 IP 和端口。然后,我们使用 GetStream() 方法获取与服务器通信的 NetworkStream 实例。
我们使用异步委托读取来自服务器的数据,并在控制台上显示它们。我们还使用异步委托从控制台读取用户输入,并将其发送给服务器。
这个程序是一个简单的 Tcp 客户端,它使用异步委托来实现并发读取和写入。它还演示了如何使用 C# 中的 TcpClient 和 NetworkStream 类来与 Tcp 服务器进行通信。
原文地址: https://www.cveoy.top/t/topic/lbXD 著作权归作者所有。请勿转载和采集!