温馨提示×

c# tcplistener有何创建技

c#
小樊
87
2024-11-20 03:29:07
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在C#中,TcpListener类用于创建一个TCP服务器,监听来自客户端的连接请求。以下是创建一个简单的TCP服务器的步骤:

  1. 引入必要的命名空间:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
  1. 创建一个TcpListener实例,指定监听的IP地址和端口号:
IPHostAddress ipAddress = IPAddress.Any; // 监听所有可用的网络接口
int port = 12345; // 选择一个端口号
TcpListener listener = new TcpListener(ipAddress, port);
  1. 开始监听客户端连接请求:
listener.Start();
Console.WriteLine("Server is listening on port " + port);
  1. 使用异步方法接受客户端连接:
while (true)
{
    // 接受客户端连接请求
    TcpClient client = await listener.AcceptTcpClientAsync();
    Console.WriteLine("Client connected: " + client.Client.RemoteEndPoint.ToString());

    // 处理客户端请求
    Task.Run(() => HandleClient(client));
}
  1. 定义处理客户端请求的方法:
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());
}
  1. 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有何创建法

0