在C#中,TcpListener
类用于创建一个TCP服务器,监听来自客户端的连接请求。以下是创建一个简单的TCP服务器的步骤:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
TcpListener
实例,指定监听的IP地址和端口号:IPHostAddress ipAddress = IPAddress.Any; // 监听所有可用的网络接口
int port = 12345; // 选择一个端口号
TcpListener listener = new TcpListener(ipAddress, port);
listener.Start();
Console.WriteLine("Server is listening on port " + port);
while (true)
{
// 接受客户端连接请求
TcpClient client = await listener.AcceptTcpClientAsync();
Console.WriteLine("Client connected: " + client.Client.RemoteEndPoint.ToString());
// 处理客户端请求
Task.Run(() => HandleClient(client));
}
private static async Task HandleClient(TcpClient client)
{
NetworkStream stream = client.GetStream();
byte[] buffer = new byte[1024];
int bytesRead;
// 读取客户端发送的数据
while ((bytesRead = await stream.ReadAsync(buffer, 0, buffer.Length)) != 0)
{
string data = Encoding.UTF8.GetString(buffer, 0, bytesRead);
Console.WriteLine("Received from client: " + data);
// 响应客户端
string response = "Hello from server!";
byte[] responseBytes = Encoding.UTF8.GetBytes(response);
await stream.WriteAsync(responseBytes, 0, responseBytes.Length);
}
// 关闭客户端连接
client.Close();
Console.WriteLine("Client disconnected: " + client.Client.RemoteEndPoint.ToString());
}
Main
方法中启动服务器:static void Main(string[] args)
{
// 创建TCP监听器
TcpListener listener = new TcpListener(IPAddress.Any, 12345);
// 开始监听客户端连接请求
listener.Start();
Console.WriteLine("Server is listening on port 12345");
// 使用异步方法接受客户端连接
while (true)
{
TcpClient client = await listener.AcceptTcpClientAsync();
Console.WriteLine("Client connected: " + client.Client.RemoteEndPoint.ToString());
// 处理客户端请求
Task.Run(() => HandleClient(client));
}
}
这个示例创建了一个简单的TCP服务器,监听端口12345,并在接收到客户端连接请求时发送一条响应消息。你可以根据需要修改这个示例,以满足你的具体需求。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读:c# tcplistener有何创建法